web-dev-qa-db-fra.com

WP action/filter pour modifier le titre avant la sortie de l'en-tête et de l'article

J'essaye de diviser en test deux versions d'un titre de publication à l'aide d'un plugin personnalisé. Jusqu'à présent, je n'ai pas trouvé le bon filtre ou l'action à utiliser pour modifier le titre au niveau des balises méta avant la sortie de la page.

Ce que j’ai trouvé, c’est le filtre the_title mais cela ne devrait se faire que dans le contenu du message, et non pas en tête de document.

http://codex.wordpress.org/Plugin_API/Filter_Reference/the_title

Est-ce le bon filtre à utiliser et il me suffit de modifier mon modèle de thème pour accomplir l'action sélectionnée? Puis-je le faire strictement à partir d'un plugin sans modification de thème?

Ce que je veux faire est de vérifier si une variable GET est définie, telle que ?title_ver=1 et si elle est définie, puis saisissez la méta valeur appropriée pour le titre alternatif.

Code non fonctionnel

    function custom_modify_title( $title, $id = null ) {
        return 'CUSTOM '.$title;
    }
    add_filter( 'wp_title', 'custom_modify_title', 10, 2 );
    add_filter( 'the_title', 'custom_modify_title', 10, 2 );
1
user3657553

Le filtre wp_title modifie uniquement la fonction wp_title () quand il est appelé.

Donc, vous devez vérifier le code source de votre thème si, avant, votre en-tête utilise wp_title.

Quoi qu'il en soit, vous pouvez définir votre filtre sur functions.php . Une fonction permettant d'identifier votre paramètre GET devrait ressembler à ceci:

function maybe_change_wp_title_ver( $title, $sep ) {

    if ( isset( $_GET['title_ver'] ) && 1 === $_GET['title_ver'] ) {
        $title = 'My New Title';
    }

    return $title;
}

add_filter( 'wp_title', 'maybe_change_wp_title_ver', 99, 2 ); //99 is set as priority (read comments)
1
Leo Caseiro