web-dev-qa-db-fra.com

Events Made Easy Plugin - Tags de titre en double

J'utilise le plug-in Events Made Easy pour gérer les événements d'un client. Récemment, alors que je recherchais des problèmes sur mon site, j’ai remarqué que les balises de titre en double me parvenaient dans les pages "événements", car elles produisaient toutes le même "Événements - Nom de site" <title> et ne sont pas spécifiques à cet événement. Cela provoque non seulement des balises de titre en double, mais il est également très difficile de trouver une solution pour que cela fonctionne avec <?php add_theme_support('title_tag'); ?>. Sur le site de plugin pour Events Made Easy , ils ont posté une solution de contournement qui fonctionne, mais elle gâche essentiellement tout référencement naturel effectué par YOAST que j'utilise également.

La solution proposée sur le site Web du plugin consiste à ajouter ceci à functions.php:

remove_action( 'wp_head', '_wp_render_title_tag', 1 );

Puis ajoutez ce qui suit juste avant la balise de fermeture </head> dans header.php, ce qui ruine le support "title_tag" via WP. Je suis censé ajouter ce qui suit:

<?php if (!eme_is_events_page()) { ?>
    <title><?php echo get_the_title().' | '.get_bloginfo( 'name' );?></title>
<?php }?>

Bien que cette solution fonctionne spécifiquement sur les pages d'événements, elle annule la possibilité d'utiliser non seulement Yoast SEO, mais également le support title_tag pour mon thème.

Pour l’essentiel, cette solution ne fonctionne que pour les pages d’événements et laisse vos autres pages sujettes au titre générique | Les titres des pages bloginfo empêchent YOAST SEO d’apporter des modifications à ces balises. Ceci, pour moi, revient essentiellement à avant que le support "title_tag" ne soit disponible et constitue un travail fastidieux.

J'ai essayé quelques PHP conditionnels pour résoudre le problème, mais il semble que j'essaie de réinventer la roue.

<?php wp_head(); ?>
        <?php if (eme_is_events_page()) { ?>
            <title><?php echo get_the_title().' - '.get_bloginfo( 'name' );?></title>
        <?php } elseif (is_front_page()) { ?>
            <title><?php echo get_bloginfo(); ?></title>
        <?php } elseif(is_page()) { ?>
            <title><?php echo get_the_title().' - '.get_bloginfo( 'name' );?></title>
        <?php } ?>

Mais en utilisant ma propre méthode, je dois prendre en compte chaque page possible, un modèle de page personnalisé, des pages de balises, etc. Cela semble un peu daté. J'aimerais avoir des commentaires sur ce problème, je veux continuer à utiliser le support des balises de titre sur mon thème et je ne veux pas revenir à placer réellement un <title></title> dans mon header.php

Pour ceux qui ne sont pas familiers avec le plugin Events Made Easy, le plugin lui-même me permet d'insérer des en-têtes supplémentaires dans la configuration du plugin. Cela nécessite l'utilisation de leurs "espaces réservés" pour que je puisse rendre le titre dynamique. Events Made Easy Settings

Ainsi, certaines méthodes plus traditionnelles risquent de ne pas fonctionner en raison de la configuration du plug-in.

1
ben.kaminski

J'essaie ce code suivant avec Events Made Easy version 2.0.35.
On dirait que vous êtes près de la solution. vous avez trouvé toutes les briques mais vous n'avez pas réussi à les assembler.

Essayez ce code pour désactiver le titre automatique s'il s'agit d'une page d'événement et si la configuration du titre est définie dans le back-end:

add_action("wp_head", function () {


    if (eme_is_single_event_page()) {

        $extra_headers_format = get_option('eme_event_html_headers_format');

        if (!empty($extra_headers_format)) {
            remove_action( 'wp_head', '_wp_render_title_tag', 1 );
        }

    }


}, 0); // priority 0 to be launched before the call of "_wp_render_title_tag"
1
mmm