概要
bcn_admin_post_root_args
フィルタは、WordPressプラグイン Breadcrumb NavXTに関連するフィルタで、管理画面のポスト設定におけるルート引数のカスタマイズを行います。このフィルタを使用することにより、投稿やページのパンくずリストの出力を管理しやすくすることができます。一般的に、このフィルタは以下のような機能を実装する際によく使われます。
- 特定の投稿タイプに対するカスタム設定の追加
- 特定の条件に基づくパンくずリストの表示制御
- タクソノミー情報の拡張
- メタデータの追加や変更
- ユーザーの権限に基づく表示制御
- 言語の切り替えやローカライズの調整
構文
add_filter('bcn_admin_post_root_args', 'your_function_name', 10, 2);
パラメータ
$args
(array): パンくずリストのルート引数。$post
(object): 現在の投稿オブジェクト。
戻り値
- (array): 更新された引数。
バージョン
- Breadcrumb NavXT: 6.5.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_admin_post_root_args', 'add_custom_post_type_args', 10, 2);
function add_custom_post_type_args($args, $post) {
if ($post->post_type == 'your_custom_post_type') {
$args['custom_arg'] = 'value';
}
return $args;
}
このサンプルは、カスタム投稿タイプで特定のルート引数を追加します。
サンプル2: タクソノミー情報を変更する
add_filter('bcn_admin_post_root_args', 'modify_taxonomy_info', 10, 2);
function modify_taxonomy_info($args, $post) {
if (in_category('your-category', $post)) {
$args['taxonomy'] = 'modified_taxonomy';
}
return $args;
}
このサンプルは、特定のカテゴリーに属するときにタクソノミー情報を変更します。
サンプル3: ユーザー権限に基づく表示の制御
add_filter('bcn_admin_post_root_args', 'control_display_based_on_role', 10, 2);
function control_display_based_on_role($args, $post) {
if (!current_user_can('edit_posts')) {
unset($args['restricted_arg']);
}
return $args;
}
このサンプルは、ユーザーが投稿を編集できない場合に特定の引数を削除します。
サンプル4: 条件に応じた引数の変更
add_filter('bcn_admin_post_root_args', 'conditional_root_args_modification', 10, 2);
function conditional_root_args_modification($args, $post) {
if (is_single($post->ID)) {
$args['single_view'] = true;
}
return $args;
}
このサンプルは、単一投稿ページである場合に特定の引数を追加します。
サンプル5: 多言語対応の引数を追加
add_filter('bcn_admin_post_root_args', 'add_multilingual_support', 10, 2);
function add_multilingual_support($args, $post) {
$args['language'] = 'ja';
return $args;
}
このサンプルは、多言語対応のために言語情報を追加します。