Breadcrumb NavXTでタイトルからHTMLを取り除く

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)

ユニークな値とは限らないので、ここも注意が必要です。

コメント