概要
フィルタ ure_restrict_content_view_for_authors_and_editors
は、WordPressのUser Role Editorプラグインにおいて、著者や編集者のユーザーに対するコンテンツの閲覧制限を実施するための機能です。このフィルタを使うことで、特定の条件に基づいて著者と編集者がコンテンツにアクセスできるかどうかを制御できます。以下に、このフィルタがよく使われるケースを挙げます。
- コンテンツの公開状態による制限
- 特定の投稿タイプに対するアクセス制御
- ユーザーの役割に基づいたコンテンツ制限
- 未承認のコメントやレビューの表示制限
- 特定のカテゴリやタグに基づく制限
- メンバーシップ制サイトにおけるコンテンツへのアクセス管理
構文
add_filter( 'ure_restrict_content_view_for_authors_and_editors', 'my_custom_function', 10, 2 );
パラメータ
$can_view
: コンテンツを表示できるかどうかのブール値。$post
: 現在の投稿オブジェクト。
戻り値
このフィルタは、指定された条件に基づいて更新されたブール値を返します。
プラグインとWordPressのバージョン
- User Role Editorのバージョン: 4.60 以上
- 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: 特定の投稿IDの表示制限
このサンプルコードは、特定の投稿IDを持つコンテンツを著者や編集者が閲覧できないように制限します。
add_filter('ure_restrict_content_view_for_authors_and_editors', function($can_view, $post) {
if ($post->ID === 123) { // 投稿ID 123
return false;
}
return $can_view;
});
サンプル2: 編集者以上のみ表示可能にする
この例では、特定のコンテンツを編集者以上のユーザーのみが閲覧できるように制御します。
add_filter('ure_restrict_content_view_for_authors_and_editors', function($can_view, $post) {
if (!current_user_can('edit_others_posts')) {
return false;
}
return $can_view;
});
サンプル3: 投稿タイプに基づく制限
特定の投稿タイプに対して閲覧を制限するためのコード例です。
add_filter('ure_restrict_content_view_for_authors_and_editors', function($can_view, $post) {
if ($post->post_type === 'custom_post_type') {
return false; // カスタム投稿タイプは閲覧不可
}
return $can_view;
});
サンプル4: カテゴリに基づくアクセス制限
このサンプルは、特定のカテゴリに属する投稿に対して著者と編集者のみアクセスを制限します。
add_filter('ure_restrict_content_view_for_authors_and_editors', function($can_view, $post) {
if (has_category('restricted-category', $post)) {
return false; // 制限されたカテゴリに属する投稿は表示不可
}
return $can_view;
});
サンプル5: ユーザーの役割に応じた制限
このコードは、ユーザーの役割によって特定のコンテンツへのアクセスを制限します。
add_filter('ure_restrict_content_view_for_authors_and_editors', function($can_view, $post) {
if (user_can(get_current_user_id(), 'subscriber')) {
return false; // サブスクライバーは表示不可
}
return $can_view;
});