概要
bcn_show_tax_privateフィルタは、WordPressのBreadcrumb NavXTプラグインにおいて、カスタムタクソノミーやプライベートなタクソノミーをどのように表示するかを制御するために使用されます。このフィルタを利用することで、特定の条件下でタクソノミーの表示を変更したり、タクソノミーのアイテムを非表示にしたりすることができます。
このフィルタは、以下のような機能を実装する際に特によく使われます:
1. プライベートタクソノミーの表示制御
2. 特定のユーザーロールに応じたタクソノミーの表示
3. 投稿の種類に基づいたタクソノミーの表示のカスタマイズ
4. SEOに基づいたタクソノミーリンクの非表示
5. 特定の条件に基づいたナビゲーションの変更
6. カスタムテーマとの互換性を保つためのタクソノミー表示の調整
フィルタの概要
- 構文:
apply_filters( 'bcn_show_tax_private', $tax_display, $tax_obj ); - パラメータ:
$tax_display: タクソノミーが表示されるかどうかを示すブーリアン値。$tax_obj: タクソノミーオブジェクト。
- 戻り値: フィルタ後のタクソノミーが表示されるかどうかのブーリアン値。
- 使用可能なプラグインのバージョン: Breadcrumb NavXT 6.0 以上で使用可能。
- 使用可能なWordPressのバージョン: 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_tax_private', 'custom_tax_visibility', 10, 2 );
function custom_tax_visibility( $tax_display, $tax_obj ) {
if ( is_user_logged_in() && $tax_obj->name === 'private_taxonomy' ) {
return true; // ログインユーザーにはプライベートタクソノミーを表示
}
return false; // その他のユーザーには非表示
}
このサンプルコードは、ユーザーがログインしている場合に限り、プライベートタクソノミーを表示するためのフィルタを追加します。
サンプル2
add_filter( 'bcn_show_tax_private', 'hide_specific_tax', 10, 2 );
function hide_specific_tax( $tax_display, $tax_obj ) {
if ( 'my_custom_tax' === $tax_obj->name ) {
return false; // 特定のタクソノミーを非表示にする
}
return $tax_display;
}
このコードは、特定のカスタムタクソノミー(my_custom_tax)をナビゲーションから非表示にします。
サンプル3
add_filter( 'bcn_show_tax_private', 'conditional_tax_visibility', 10, 2 );
function conditional_tax_visibility( $tax_display, $tax_obj ) {
if ( is_single() && 'post' === get_post_type() ) {
return true; // 投稿ページでは全てのタクソノミーを表示
}
return $tax_display;
}
このサンプルは、投稿ページにいるときにすべてのタクソノミーを表示する条件を設定しています。
サンプル4
add_filter( 'bcn_show_tax_private', 'role_based_tax_display', 10, 2 );
function role_based_tax_display( $tax_display, $tax_obj ) {
if ( current_user_can( 'administrator' ) ) {
return true; // 管理者にはすべてのタクソノミーを表示
}
return false; // その他のユーザーには非表示
}
このコードは、管理者ユーザーにはすべてのタクソノミーを表示し、それ以外のユーザーには表示しないように設定しています。
サンプル5
add_filter( 'bcn_show_tax_private', 'toggle_tax_visibility_on_page', 10, 2 );
function toggle_tax_visibility_on_page( $tax_display, $tax_obj ) {
if ( is_page( 'contact' ) ) {
return false; // お問い合わせページではタクソノミーを非表示
}
return $tax_display;
}
このサンプルは、「お問い合わせ」ページにいる場合、タクソノミーを非表示にするフィルタです。