發佈此答案,因爲它是搜索結果我最終在搜索有關定位過濾器鉤子the_title
時點擊,同時忽略導航項目的過濾器效果。
我正在研究主題中的一個部分,我想在標題的一個標記內爲頁面標題添加按鈕。
它看起來類似於這樣:
<?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
。搜索apply_filters('the_title'*
的WordPress核心代碼,你會看到自己。
因此,我決定添加第三個參數用於我想要定位特定物品的情況,這些物品稱爲the_title
過濾器。這樣,我仍然可以從默認情況下獲得適用於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%相關的問題,但這是我在尋找解決這個問題時到達的地方。希望這可以幫助處於類似情況的人。
因爲菜單項也有標題,所以需要過濾:)。如果這是您的主題,則可以在顯示菜單之前刪除過濾器,然後再次添加。或者,您可以做相反的事情,只在需要時才添加過濾器。 –
某人在顯示菜單標題後如何去除過濾器並將其添加回去? –