WordPressの投稿や固定ページなどのタイトルは、HTMLタグを挿入することができます。タイトルが長い場合にbrタグを挿入できたりと便利ではありますが、Breadcrumb NavXTを使っているとパンくずにも改行が反映されてしまいます。
この記事では、Breadcrumb NavXTのフックを使って、パンくずからHTMLタグを取り除く方法を紹介します。
取り除き方
bcn_breadcrumb_titleフィルターフックにコールバック関数を登録します。
第1引数にタイトルが渡ってくるので、strip_tags関数でHTMLタグを取り除きます。
add_filter('bcn_breadcrumb_title', function ( $title, $type, $id ) {
return strip_tags($title);
}, 10, 3);
参考
第2引数にはパンくずの情報が渡ってきますが、中身は以下のようになっています。
// 投稿の記事詳細
array(2) {
[0]=>
string(4) "post"
[1]=>
string(9) "post-post"
}
// 固定ページの記事詳細
array(2) {
[0]=>
string(4) "post"
[1]=>
string(9) "post-page"
}
// カスタム投稿タイプ「animal」の記事詳細
array(2) {
[0]=>
string(4) "post"
[1]=>
string(11) "post-animal"
}
// カテゴリーのアーカイブ
array(2) {
[0]=>
string(8) "taxonomy"
[1]=>
string(8) "category"
}
記事詳細の先頭の要素(post)は投稿タイプではない点が注意です。
投稿タイプで条件分岐をする場合は、その次の要素(post-post、post-pageなど)を使いましょう。
また、第3引数には記事詳細では投稿ID、カテゴリーアーカイブではタームIDが渡ってきます。
// 投稿(Hello world!)の記事詳細
int(1)
// 固定ページ(サンプルページ)の記事詳細
int(2)
// カテゴリー(未分類)のアーカイブ
int(1)
ユニークな値とは限らないので、ここも注意が必要です。
コメント