概要
bcn_show_post_private
フィルタは、WordPressのBreadcrumb NavXTプラグインで使用されるフィルタで、特に非公開の投稿(プライベート投稿)がパンくずリストに表示されるかどうかを制御するために使用されます。このフィルタを使用することで、デフォルトの動作をカスタマイズし、特定の状況に応じてプライベート投稿を表示または隠すことができます。
このフィルタがよく使われるシナリオには以下のようなものがあります:
1. プライベート投稿を特定のユーザーグループだけに表示する。
2. パンくずリストの一貫性を維持するために公開されている投稿のみを表示する。
3. サイトのSEOを考慮してプライベート投稿を隠す。
4. ユーザーエクスペリエンスを向上させるためにナビゲーションをシンプルに保つ。
5. ロールベースで異なる投稿の表示設定を行う。
6. 特定の条件下でのみプライベート投稿を表示するカスタムロジックの実装。
構文
add_filter('bcn_show_post_private', 'function_name', 10, 2);
パラメータ
bool
$show: 現在の設定状態(表示する場合はtrue、しない場合はfalse)。WP_Post
$post: 現在の投稿オブジェクト。
戻り値
- フィルタによって変更された、表示状態を表す
bool
値。
使用可能なプラグインバージョン
- Breadcrumb NavXT: 6.0.0以降
- WordPress: 4.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('bcn_show_post_private', 'show_private_posts_for_admin', 10, 2);
function show_private_posts_for_admin($show, $post) {
if(current_user_can('administrator')) {
return true; // 管理者は常にプライベート投稿を表示
}
return $show; // その他のユーザーはデフォルトの動作を適用
}
このサンプルコードは、管理者がプライベート投稿を常に表示できるように設定します。
サンプルコード2
add_filter('bcn_show_post_private', 'hide_private_posts_from_guests', 10, 2);
function hide_private_posts_from_guests($show, $post) {
if(!is_user_logged_in()) {
return false; // ログインしていないユーザーにはプライベート投稿を隠す
}
return $show;
}
このコードは、未ログインのユーザーがプライベート投稿を見られないようにします。
サンプルコード3
add_filter('bcn_show_post_private', 'conditionally_show_private_posts', 10, 2);
function conditionally_show_private_posts($show, $post) {
if(is_page('special-page')) {
return true; // 特定のページではプライベート投稿を表示
}
return $show;
}
このサンプルでは、特定のページでのみプライベート投稿を表示します。
サンプルコード4
add_filter('bcn_show_post_private', 'show_private_posts_to_editors', 10, 2);
function show_private_posts_to_editors($show, $post) {
if(current_user_can('editor')) {
return true; // 編集者はプライベート投稿を表示できる
}
return $show;
}
このコードは、編集者権限を持つユーザーにプライベート投稿の表示を許可します。
サンプルコード5
add_filter('bcn_show_post_private', 'customize_private_post_display', 10, 2);
function customize_private_post_display($show, $post) {
if(current_user_can('manage_options') && $post->post_status == 'private') {
return true; // サイト管理者は全てのプライベート投稿を表示
}
return false; // デフォルトで非表示
}
このサンプルコードは、サイト管理者のみがプライベート投稿を表示できるように設定しています。