プラグインBreadcrumb NavXTのbcn_show_tax_privateフィルタの使用方法・解説

概要

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;
}

このサンプルは、「お問い合わせ」ページにいる場合、タクソノミーを非表示にするフィルタです。

この関数について質問する


上の計算式の答えを入力してください