wordpressのパンくずプラグイン「Prime Strategy Bread Crumb」Googleの検索結果ページでもパンくずリストを表示する「microdata」化
もしっかりできて便利なのだが、トップページとカスタム分類で作ったタームのリンクの間に、カスタム投稿アーカイブページか固定ページをはさみたい。
あ、「microdata」化の方法は→ Googleの検索結果ページでパンくずリストを表示する「Prime Strategy Bread Crumb」編 が参考になります。
通常の使用
投稿ページ
トップページ > 親カテゴリ > 子カテゴリ > 孫カテゴリ > 表示中の投稿名
カテゴリページ
トップページ > 親カテゴリ > 子カテゴリ > 表示中の孫カテゴリ
親子関係のある固定ページ
トップページ > 親ページ > 表示中の子固定ページ
カスタム投稿タイプ投稿ページ
トップページ > 親ターム > 子ターム > 表示中のカスタム投稿の記事
カスタム分類のターム(カテゴリ)
トップページ > 親ターム > 子ターム
やりたいこと
カスタム投稿タイプの投稿ページ
トップページ > カスタム投稿アーカイブ(または固定ページ) > 親ターム > 子ターム > 表示中のカスタム投稿の記事
カスタム分類のターム(カテゴリ)
トップページ > カスタム投稿アーカイブ(または固定ページ) >親ターム > 子ターム
カスタマイズ方法
とりあえず、カスタム投稿タイプのパーマリンクをカスタム設定「Custom Post Type Permalinks」を導入。
↓
カスタム分類のアーカイブのパーマリンクを変更する。にチェックいれて変更。
カスタム投稿アーカイブへのリンクが投稿(シングルページ)でしか表示されない。。。
カスタム分類の各カテゴリにも表示したかったのでやってみました。
プラグインを編集
方法1
prime-strategy-bread-crumb.phpの170行目あたりに
} elseif ( is_tax() ) {
$post_type = get_post_type_object( $post->post_type );
if ( $post_type ) {$bread_crumb_arr[] = array( ‘title’ => sprintf( $args[‘post_type_label’], $post_type->label ), ‘link’ => get_post_type_archive_link( $post_type->name ) );}
$taxonomy = get_query_var( ‘taxonomy’ );
$term = get_term_by( ‘slug’, get_query_var( ‘term’ ), $taxonomy );
if ( is_taxonomy_hierarchical( $taxonomy ) && $term->parent != 0 ) {
を追加。※ただし、タームに投稿がある場合のみ有効。分類追加しても触らなくていいから楽。
方法2 カスタム分類を指定
} elseif ( is_tax() ) {
if ( is_tax(‘カスタム分類) ) {
$bread_crumb_arr[] = array( ‘title’ => ‘カスタム投稿名or固定ページ名‘, ‘link’ => esc_url( home_url( ‘/カスタム投稿アーカイブスラッグor固定ページスラッグ/’ ) ) );
}
$taxonomy = get_query_var( ‘taxonomy’ );
$term = get_term_by( ‘slug’, get_query_var( ‘term’ ), $taxonomy );
if ( is_taxonomy_hierarchical( $taxonomy ) && $term->parent != 0 ) {
※この方法なら固定ページも挟めるー
カスタム投稿タイプの投稿ページにも固定ページのパンくずを挟みたいときは259行目付近の
$post_type = get_post_type_object( $post->post_type );
if ( $post_type && $post_type->has_archive ) {
$bread_crumb_arr[] = array( ‘title’ => sprintf( $args[‘post_type_label’], $post_type->label ), ‘link’ => get_post_type_archive_link( $post_type->name ) );
}
を編集。
$bread_crumb_arr[] = array( ‘title’ => ‘カスタム投稿名or固定ページ名‘, ‘link’ => esc_url( home_url( ‘/カスタム投稿アーカイブスラッグor固定ページスラッグ/’ ) ) );
他にいい方法あったら誰か教えてください。。。functions.php使う感じで。。。
同じ状態でずっと悩んでいましたが、たまたまこちらのブログを見つけました。
参考にさせていただき(というかほぼコピペですが)無事解決できました!
ありがとうございました!!
アップデートすると消えちゃう問題ありますがお役にたてて良かったです♪