概要
bcn_show_cpt_private
は、WordPressのBreadcrumb NavXTプラグインで使用されるフィルターフックであり、特定のカスタム投稿タイプがプライベートである場合にその表示を制御するために使用されます。このフィルターを使うことで、ユーザーがアクセスできないプライベートなコンテンツをブレッドクラムナビゲーションに表示しないように設定することが可能です。以下に、具体的な機能の実装例を挙げます。
- プライベートなカスタム投稿タイプのブレッドクラムを非表示にする。
- ユーザーの権限に応じて表示するブレッドクラムを調整する。
- SEO目的で特定の投稿をナビゲーションから除外する。
- 会員制サイトにおけるコンテンツの表示制御を行う。
- 特定のユーザーグループ向けにカスタマイズしたナビゲーションを作成する。
- サイトの可視性に基づいて動的にナビゲーションをカスタマイズする。
構文
add_filter('bcn_show_cpt_private', 'your_custom_function', 10, 2);
パラメータ
bool
: カスタム投稿タイプがプライベートであるかどうかのフラグ$post
: 現在の投稿オブジェクト
戻り値
bool
: カスタム投稿タイプが表示される場合はtrue
、表示しない場合はfalse
使用可能なプラグインとバージョン
- 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_cpt_private', function($show, $post) {
// ユーザーが特定の権限を持っていない場合、プライベート投稿を非表示にする
if (!current_user_can('edit_posts')) {
return false;
}
return $show;
});
このコードは、ユーザーが投稿を編集する権限を持っていない場合にプライベート投稿をブレッドクラムから非表示にします。
サンプルコード2
add_filter('bcn_show_cpt_private', function($show, $post) {
// 投稿の種類が"my_custom_post_type"の場合、プライベート投稿を表示しない
if ($post->post_type === 'my_custom_post_type') {
return false;
}
return $show;
});
このコードは、my_custom_post_type
というカスタム投稿タイプのプライベートな投稿をブレッドクラムから除外します。
サンプルコード3
add_filter('bcn_show_cpt_private', function($show, $post) {
// 特定のユーザーIDの時のみプライベート投稿を表示
if (get_current_user_id() === 1) {
return true;
}
return false;
});
このコードは、ユーザーIDが1(通常は管理者)の場合に限り、プライベート投稿を表示するように設定しています。
サンプルコード4
add_filter('bcn_show_cpt_private', function($show, $post) {
// プライベート投稿の場合、特定のメッセージを表示する(実際の表示は他のフックで行う)
if ($post->post_status === 'private') {
$show = false;
add_action('wp_footer', function() {
echo '<p>This content is private and cannot be displayed.</p>';
});
}
return $show;
});
このコードは、プライベートな投稿が非表示の際にフッターにカスタムメッセージを表示します。
サンプルコード5
add_filter('bcn_show_cpt_private', function($show, $post) {
// URLに特定のパラメータがある場合、プライベートな投稿も表示
if (isset($_GET['show_private']) && $_GET['show_private'] === 'true') {
return true;
}
return $show;
});
このコードは、URLにshow_private=true
のパラメータが含まれている場合、プライベート投稿を表示するように設定しています。