テンプレートの部分的な書き換えなどを行う際によく利用します。
実験的にここでは、投稿の詳細ページのタイトル部分にマークアップされている<header>
タグ全体を書き換えて、CSSクラスp-added-css-class
を既存CSSクラスに追加するという(意味のない)ことをやってみようと思います。
対象となるテンプレートファイルの場所は、
template-parts/content/entry/header/header.php
になります。これをフック名の最後に、上の最後の.php
を取ったもの(これをスラッグと言います)を追記します。
上記のテンプレートを上書きするフィルターフック名は、以下の文言になります。
snow_monkey_template_part_render_template-parts/content/entry/header/header
では、ソースコードはどうなるでしょう。
ソースコード
<?php
/**
* @param $html テンプレートパーツの出力HTML
* @param $name テンプレートパーツの名前
* @param $vars テンプレートパーツのリクエスト配列
*/
add_filter(
'snow_monkey_template_part_render_template-parts/content/entry/header/header',
function( $html, $name, $vars ) {
$html = str_replace(
'<header class="c-entry__header">',
'<header class="c-entry__header p-added-css-class">',
$html
);
return $html;
},
10,
3
);
str_replace
についてはこちらを参照こうすることで、投稿詳細ページのタイトル(<h1>
)をラップしている<header>
に付いているクラス名を増やす(正確には<header>
タグを上書きしている)ことになります。
公式リファレンス
Snow Monkey公式フォーラムで検索する 「あれ?この情報、古くない?」と思ったらご連絡ください。 snow_monkey_append_entry_content