the_title
ナビゲーションアイテムのフィルター効果を無視して、フィルターフックのターゲットを検索しているときにクリックしてしまった検索結果だったので、この回答を投稿しました。
見出し1タグ内のページタイトルにボタンを追加したいテーマのセクションに取り組んでいました。
これに似ています:
<?php echo '<h1>' . apply_filters( 'the_title', $post->post_title ) . '</h1>'.PHP_EOL; ?>
その後、私は次のように「フックイン」していました。
add_filter( 'the_title', 'my_callback_function' );
ただし、上記は文字通りthe_title
フィルターフックを呼び出すすべてのものを対象としており、これにはナビゲーションアイテムが含まれます。
フィルタフックの定義を次のように変更しました。
<?php echo '<h1>' . apply_filters( 'the_title', $post->post_title, $post->ID, true ) . '</h1>'.PHP_EOL; ?>
the_title
フィルタを呼び出すほとんどすべての呼び出しで、パラメータ1がとして渡され$post->post_title
、パラメータ2がとして渡されます$post->ID
。WordPressのコアコードを検索するapply_filters( 'the_title'*
と、自分の目で確かめることができます。
the_title
そこで、フィルターを呼び出す特定のアイテムをターゲットにする状況のために、3番目のパラメーターを追加することにしました。このようにして、デフォルトでフィルターフックに適用されるすべてのコールバックのメリットを享受しながら、3番目のパラメーターでフィルターフックをthe_title
使用するアイテムを半一意にターゲットにすることもできます。the_title
これは単純なboolean
パラメータです。
/**
* @param String $title
* @param Int $object_id
* @param bool $theme
*
* @return mixed
*/
function filter_the_title( String $title = null, Int $object_id = null, Bool $theme = false ) {
if( ! $object_id ){
return $title;
}
if( ! $theme ){
return $title;
}
// your code here...
return $title;
}
add_filter( 'the_title', 'filter_the_title', 10, 3 );
必要に応じて変数にラベルを付けます。これは私のために働いたものであり、それは私がそれをするのに必要なことを正確に行います。この回答は、尋ねられた質問に100%関連していない可能性がありますが、この問題を解決するために検索しているときに私が到着した場所です。これが同様の状況の誰かに役立つことを願っています。