概要
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;
}
このサンプルは、多言語対応のために言語情報を追加します。