web-dev-qa-db-fra.com

Supprimer le titre de la page de la page d'accueil statique

Je voudrais supprimer le titre de l'article de ma page d'accueil statique. Juste cette page. J'ai créé un thème pour enfants à partir d'un thème Press75 gratuit. Je voudrais donc faire ce changement dans la function.php de mon thème enfant.

J'ai utilisé ce code mais il supprime le titre de toutes les pages, des messages et de ma navigation:

add_filter( 'the_title', 'remove_page_title' );

function remove_page_title() {
    if(is_page('138')) {
    }
    return '';
}

Je pensais que cela supprimerait simplement le titre de la page portant l'ID 138. Qu'est-ce que je fais de travers?

Merci!

1
Intrepid Realist

enroulez votre appel de la fonction add_filter autour d’une balise conditionnelle et utilisez la fonction de retour intégrée false:

if ( is_page('138') )
{
      add_filter( 'the_title', '__return_false' );
}
2
kaiser

Vous l'avez presque!

Voici votre code original:

add_filter( 'the_title', 'remove_page_title' );

function remove_page_title() {
   if(is_page('138')) {
   }
   return '';
}

Cela ajoute un filtre sur the_title qui n'accepte aucun paramètre. C'est ta première erreur. Le filtre the_title prend en fait deux paramètres: le titre de la page/du message et l'id de la page/du message. Commençons donc par réécrire notre crochet:

add_filter( 'the_title', 'remove_page_title', 10, 2 );
function remove_page_title( $title, $id ) {

}

Cela attribue à notre filtre une priorité de 10 et nous permet d'accepter les deux paramètres envoyés par le filtre. Ensuite, nous spécifions les paramètres acceptés par notre fonction.

Dans la fonction, nous voulons vérifier si nous sommes sur la bonne page. Si c'est le cas, retournez '', si nous ne retournons pas le titre:

if( '138' == $id ) return '';

return $title;

Votre fonction d'origine était toujours renvoyant '' lors de l'exécution du filtre. C'est pourquoi vous obteniez un titre vierge sur chaque page, pas seulement la page que vous vouliez.

Notre code complet

Donc, votre filtre complet, réécrit pour accepter les paramètres et utiliser la logique appropriée:

add_filter( 'the_title', 'remove_page_title', 10, 2 );

function remove_page_title( $title, $id ) {
    if( '138' == $id ) return '';

    return $title;
}
0
EAMann

Une façon pour header.php:

<?php if (is_page('138')) { echo'
<style type="text/css" title="text/css">
yourpagetitleselector {display:none;}
</style>'
; ?>
0
markratledge