概要
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;
}
このサンプルは、「お問い合わせ」ページにいる場合、タクソノミーを非表示にするフィルタです。