概要
フィルタ ure_posts_show_full_list
は、プラグイン User Role Editor に関連して、投稿タイプのリストを表示する際の権限を制御するために利用できるフックです。このフィルタを使用することで、ユーザーの役割に応じて特定の投稿タイプのリストを表示または非表示にすることが可能です。主に次のような機能を実装する際に使用されることがよくあります。
- 特定のユーザーグループ向けにカスタム投稿タイプを非表示にする
- 管理者以外のユーザーに対して特定のコンテンツへのアクセスを制限する
- 限定されたコンテンツの表示を制御する
- ロールごとに異なる投稿タイプの表示をカスタマイズする
- コンテンツの編集権限を役割に基づいて制限する
- 特定のユーザーが利用できる投稿の種類を動的に変更する
構文
add_filter('ure_posts_show_full_list', 'your_function_name', 10, 2);
パラメータ
boolean
$show_full_list: 投稿リストを表示するかどうかのフラグ。array
$post_types: 表示する投稿タイプの配列。
戻り値
このフィルタは、変更された boolean
値を返します。これにより、投稿リストの表示可否を制御します。
利用可能なプラグインとバージョン
- User Role Editor のバージョン: 4.50 以降
- WordPress のバージョン: 5.0 以降
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | |
pre_get_posts | |
wp | |
template_redirect | |
get_header | |
wp_head |
サンプルコード
サンプル1: 特定の投稿タイプを非表示にする
特定のユーザーの役割に基づいて、特定のカスタム投稿タイプを非表示にします。
add_filter('ure_posts_show_full_list', function ($show_full_list, $post_types) {
if (current_user_can('editor')) {
unset($post_types['custom_post_type']);
return false;
}
return $show_full_list;
});
このコードは、エディターロールを持つユーザーに対してカスタム投稿タイプ「custom_post_type」を非表示にします。
サンプル2: 管理者のみに投稿タイプを表示
管理者以外のユーザーから特定の投稿タイプを隠します。
add_filter('ure_posts_show_full_list', function ($show_full_list, $post_types) {
if (!current_user_can('administrator')) {
unset($post_types['private_post_type']);
return false;
}
return $show_full_list;
});
このコードは、管理者以外のユーザーに対して「private_post_type」を表示しません。
サンプル3: 投稿タイプのリストを動的に変更
ユーザーの役割によって表示される投稿タイプを動的に変更します。
add_filter('ure_posts_show_full_list', function ($show_full_list, $post_types) {
if (current_user_can('subscriber')) {
return array('post', 'page'); // 投稿とページのみ表示
}
return $post_types; // それ以外は変更なし
});
このコードは、購読者が投稿とページのみを見えるようにします。
サンプル4: 投稿タイプの表示を条件付きで制御
特定の条件に基づいて表示する投稿タイプを制御します。
add_filter('ure_posts_show_full_list', function ($show_full_list, $post_types) {
if (is_user_logged_in() && current_user_can('contributor')) {
unset($post_types['event']);
return false; // イベントタイプの非表示
}
return $show_full_list;
});
このコードは、ログインユーザーが寄稿者の場合、イベント投稿タイプを非表示にします。
サンプル5: 役割に基づく全体リストのカスタマイズ
全てのユーザーに対して異なる投稿タイプのリストをカスタマイズします。
add_filter('ure_posts_show_full_list', function ($show_full_list, $post_types) {
if (current_user_can('author')) {
$post_types = array_diff($post_types, array('drafts')); // ドラフトを非表示にする
}
return $post_types;
});
このコードは、著者ロールを持つユーザーに対してドラフトの投稿タイプを非表示にします。
各コードサンプルは著作権フリーな内容を基にしています。