概要
bcn_pick_post_term
関数は、WordPress プラグイン「Breadcrumb NavXT」において、特定の投稿に関連するターム(用語)を取得するために使用される関数です。この関数は、パンくずリストの生成を容易にするため、さまざまなカスタムポストタイプやタクソノミーと連携し、SEO対策やナビゲーションの向上に寄与します。具体的には、次のようなシナリオでよく使用されます。
- カスタム投稿タイプのタームを取得するため
- 複数のタクソノミーを扱う際のタームの選択
- 特定のタームの情報を表示するためのカスタム関数との統合
- タームに基づいたフィルタリング機能の実装
- パンくずリストの表示カスタマイズ
- SEOを考慮したパンくずリストの動的生成
構文
bcn_pick_post_term( $post_id, $taxonomy );
パラメータ
$post_id
(int): タームを取得したい投稿のID。$taxonomy
(string): 取得したいタームのタクソノミー名。
戻り値
- タームオブジェクトまたはnull(指定されたタームが存在しない場合)。
対応バージョン
- プラグイン「Breadcrumb NavXT」のバージョン: 6.0以降
- WordPress のバージョン: 5.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: 投稿タームの取得
$post_id = 123; // 取得対象の投稿ID
$taxonomy = 'category'; // 取得対象のタクソノミー
$term = bcn_pick_post_term($post_id, $taxonomy);
if($term) {
echo '取得したターム名: ' . esc_html($term->name);
}
このサンプルは、特定の投稿IDのカテゴリータームを取得し、その名前を表示します。
サンプルコード2: タクソノミーによる条件分岐
$post_id = get_the_ID();
$taxonomy = 'custom_taxonomy';
$term = bcn_pick_post_term($post_id, $taxonomy);
if($term) {
if($term->slug === 'special') {
// 特別なタームの時の処理
echo '特別なタームです!';
}
}
このサンプルは、現在の投稿のIDからカスタムタクソノミーのタームを取得し、特定のスラッグを持つ場合の条件分岐を行います。
サンプルコード3: タームのリンクを生成
$post_id = 456;
$taxonomy = 'tags';
$term = bcn_pick_post_term($post_id, $taxonomy);
if($term) {
echo '<a href="'. esc_url(get_term_link($term)) .'">' . esc_html($term->name) . '</a>';
}
このサンプルは、指定した投稿のタグタームを取得し、それをリンクとして表示します。
サンプルコード4: 投稿のタームリストを表示
$post_id = 789;
$taxonomy = 'genre';
$term = bcn_pick_post_term($post_id, $taxonomy);
if($term) {
echo '<ul>';
foreach ($term as $t) {
echo '<li>' . esc_html($t->name) . '</li>';
}
echo '</ul>';
}
このサンプルは、特定の投稿が持つジャンルタームをリスト形式で表示します。
サンプルコード5: エラーハンドリング
$post_id = 123;
$taxonomy = 'category';
$term = bcn_pick_post_term($post_id, $taxonomy);
if($term === null) {
echo 'この投稿にはタームが関連付けられていません。';
} else {
echo '関連するターム: ' . esc_html($term->name);
}
このサンプルは、タームが存在しない場合にエラーメッセージを表示するコードです。
以上のコードはすべて著作権フリーのものであり、個別にカスタマイズして使用することができます。