Bu yanıtı, gezinme öğeleri için filtre etkisini görmezden gelerek, filtre kancası the_title
'u hedeflerken arama yaptığım sırada arama sonuçlarından çıktığım için gönderdim.
Bir başlık altındaki bölümde, bir başlık altındaki sayfa başlığına düğmeler eklemek istediğim bir bölümde çalışıyordum.
<?php echo '<h1>' . apply_filters('the_title', $post->post_title) . '</h1>'.PHP_EOL; ?>
Sonra bu gibi "in çengel" idi:
Şuna benzer görünüyordu
add_filter('the_title', 'my_callback_function');
Ancak, yukarıda hedefler the_title
filtre kanca çağırır anlamıyla her şey ve bu, gezinme öğelerini içerir.
Böyle filtre kanca şeklinde değiştirilmiştir: <?php echo '<h1>' . apply_filters('the_title', $post->post_title, $post->ID, true) . '</h1>'.PHP_EOL; ?>
Hemen hemen her çağrı the_title
filtre $post->ID
olarak $post->post_title
olarak parametre 1 ve parametre 2 geçer. apply_filters('the_title'*
için WordPress çekirdek kodunu arayın ve kendiniz göreceksiniz.
Bu nedenle, the_title
filtresini çağıran belirli öğeleri hedeflemek istediğim durumlar için üçüncü bir parametre eklemeyi seçtim. Bu şekilde, varsayılan olarak the_title
filtre kancasına uygulanan tüm geri bildirimlerin avantajını elde edebilirim, ayrıca üçüncü parametreyle the_title
filtre kancasını kullanan öğeleri yarı-benzersiz olarak hedefleme yeteneğine sahip olabilirim. Ancak istiyorum değişkenler
/**
* @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);
Etiket:
Bu basit boolean
parametre var. Benim için işe yarayan şey buydu ve yapmak için tam olarak ihtiyacım olan şeyi yapıyor. Bu cevap, sorulan soruyla% 100 ilgili olmayabilir, ancak bu sorunu çözmek için arama yaparken buraya geldim. Umarım bu benzer bir durumda birine yardımcı olur.
Menü öğelerinin de başlıkları olduğundan ve bunların filtrelenmesi gerekiyor :). Bu sizin temanızsa, menüyü görüntülemeden önce filtreyi kaldırabilir ve ardından tekrar ekleyebilirsiniz. Alternatif olarak, tersini yapabilir ve filtreyi yalnızca ihtiyacınız olduğunda ekleyebilirsiniz. –
Birisi menü süzgecini görüntüledikten sonra bir filtreyi kaldırmak ve geri eklemek için nasıl olurdu? –