情報を追記している場合はありますが、古い情報を訂正はしていませんので、公開年月日を参照してください。プラグイン・タグ、いずれもワードプレス・PHPのバージョン等によって動作しない場合もあります。
タクソノミー名はblog_cat。
ACF タクソノミーフィールドにadd_filter
タクソノミーフィールドはタームを保存・ロードする設定でadd_filter で表示するタームを制限。https://www.advancedcustomfields.com/resources/acf-fields-taxonomy-wp_list_categories/
ユーザー権限によって制限する例
function blog_cat_query($args, $field) { $current_user = wp_get_current_user(); if ( user_can( $current_user, 'administrator' ) ) { $args['include'] = array(8,9); } if ( user_can( $current_user, 'editor' ) ) { $args['include'] = array(8,10); } return $args; } add_filter('acf/fields/taxonomy/wp_list_categories/name=term', 'blog_cat_query', 10, 3);
設定ページを作成する場合、ユーザーを選択するフィールドしかないので、ユーザーごとに設定する例。ユーザーとタームはIDで保存。
ユーザー権限で設定したい場合は、サブフィールドをテキストでデフォルト値を設定するとか。
function blog_cat_query($args, $field) { global $wpdb; $cid = get_current_user_id(); $pid = $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_name = 'config'"); if (have_rows('config',$pid)) { while (have_rows('config',$pid)) { the_row(); $user_id = get_sub_field('user'); $term = get_sub_field('term'); if ($cid == $user_id) { $args['include'] = $term; } } } return $args; } add_filter('acf/fields/taxonomy/wp_list_categories/name=term', 'blog_cat_query', 10, 3);
その他のユーザー関連記事一覧
- カスタムフィールドの値で閲覧制限(2011.01.07作成)
- 会員制サイトの条件分岐(2011.05.01作成)
- Advanced Custom Fields でプロフィールを拡張(2013.02.06作成)
- ユーザー間でメディアを共有しない(2013.02.15作成)
- ユーザー一覧をカスタムフィールド値でソート(2013.04.26作成)
- author archive のパーマリンクを変更(2013.05.03作成)
- プロフィール項目の非表示(2013.05.25作成)
- ユーザーにタクソノミーを設定(2013.08.10作成)
- 閲覧制限の付け方(2013.09.11作成)
- 会員制コミュニティでユーザー名を見せない設定(2013.11.20作成)
- ログインエラー時にlogin.php にリダイレクトしない(2014.04.29作成)
- 会員登録関連メモ(2015.04.08作成)
- 手軽な閲覧制限(2015.12.08作成)
- 特定のユーザー権限と特定のカスタム投稿(2016.08.12作成)
- ユーザー情報アップデート時の通知(2019.06.25作成)
- Theme My Login の変わったところ(2020.05.18作成)
- 無理やりパスワードを付ける(2021.03.17作成)
- WP Members ちょっと謎めく(2021.03.22作成)
- 権限周り復習(2021.08.03作成)
- ユーザーとタームの紐付け(2021.08.04作成)
- ユーザーとタームの紐付け2(2021.08.05作成)