Inserendo questa risposta perché era il risultato della ricerca, ho finito per fare clic su durante la ricerca di targeting del filtro hook the_title
ignorando l'effetto del filtro per gli elementi di navigazione.
Stavo lavorando su una sezione di un tema che volevo aggiungere pulsanti al titolo della pagina all'interno del tag dell'intestazione uno.
sembrava simile a questo:
<?php echo '<h1>' . apply_filters('the_title', $post->post_title) . '</h1>'.PHP_EOL; ?>
ero poi "aggancio in" come questo:
add_filter('the_title', 'my_callback_function');
Tuttavia, gli obiettivi summenzionati letteralmente tutto che chiama gancio the_title
filtro e questo include elementi di navigazione.
ho cambiato la definizione gancio filtro simili:
<?php echo '<h1>' . apply_filters('the_title', $post->post_title, $post->ID, true) . '</h1>'.PHP_EOL; ?>
Praticamente ogni chiamata the_title
filtro passa parametro 1 come $post->post_title
e 2 come parametro $post->ID
. Cerca il codice principale di WordPress per apply_filters('the_title'*
e vedrai tu stesso.
Quindi ho deciso di aggiungere un terzo parametro per le situazioni in cui desidero indirizzare elementi specifici che chiamano il filtro the_title
. In questo modo, posso ancora ricevere il beneficio di tutte le richiamate che si applicano al hook del filtro the_title
per impostazione predefinita, pur avendo la possibilità di indirizzare semi-univocamente gli elementi che utilizzano il filtro con il parametro the_title
con il terzo parametro.
Si tratta di un semplice parametro di 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);
Etichetta le variabili nel modo desiderato. Questo è ciò che ha funzionato per me, e fa esattamente quello che mi serve. Questa risposta potrebbe non essere al 100% rilevante per la domanda posta, ma è qui che sono arrivato mentre cercavo di risolvere questo problema. Spero che questo aiuti qualcuno in una situazione simile.
Perché le voci di menu hanno anche titoli e devono essere filtrati :). Se questo è il tuo tema, puoi rimuovere il filtro prima di visualizzare il menu e aggiungerlo di nuovo. In alternativa puoi fare il contrario e aggiungere il filtro solo quando ne hai bisogno. –
Come farebbe qualcuno per rimuovere un filtro e aggiungerlo dopo aver visualizzato il titolo del menu? –