web-dev-qa-db-fra.com

Ajoutez des balises <meta> à la section <head> via functions.php

J'ai développé un thème personnalisé, qui est essentiellement un site de brochure de 4 pages pour un client. J'ai réussi à supprimer quelques plugins en construisant des types personnalisés, en passant par gzipping via .htaccess et minifying via. avale etc. etc.

Je garderai le plug-in de sécurité sur le site, mais j'aimerais supprimer Yoast, le seul avantage qu'il apporte, compte tenu de l'optimisation du site, c'est qu'il me permet d'ajouter les balises et les extraits meta pour chaque site. page à des fins de référencement.

Y at-il une fonction que je peux ajouter à mon fichier functions.php qui me permet d’ajouter des balises <meta> à différentes pages via l’identifiant de page?

Quand on google ce sujet tout ce que vous obtenez est des articles de plugin, ou des informations sur la méta générale wp.

Toute aide serait géniale.

Paul.

2
Paul12_

Le hook que vous recherchez est spécifiquement wp_head qui pourrait ressembler à ceci:

function theme_xyz_header_metadata() {

    // Post object if needed
    // global $post;

    // Page conditional if needed
    // if( is_page() ){}

  ?>

    <meta name="abc" content="xyz" />

  <?php

}
add_action( 'wp_head', 'theme_xyz_header_metadata' );

Je pense que sur le long terme, étant donné que WordPress est tellement portable, Yoast SEO est probablement le pari le plus fiable et le plus flexible pour le SEO, ce que vous feriez vous-même, je vous le déconseille donc personnellement.

5
Howdy_McGee

DIY SEO:

1: Dans l’éditeur/éditeur de page d’une page ou d’un article: Ajoutez un ou plusieurs champs personnalisés (métadonnées) avec les valeurs requises pour vos balises méta SEO.

  • par exemple. Ouvrez votre page "Conditions générales" dans l'éditeur de page et ajoutez un champ personnalisé "my_noindex" avec la valeur "y".
  • N.B. si la zone de champ personnalisé n'est pas visible sous l'éditeur, cliquez sur le menu déroulant "options d'affichage" en haut de la page, puis sur la case à cocher "champs personnalisés" qui apparaît.

2: Dans functions.php (ou mieux encore dans votre plugin indépendant site_functions indépendant du thème): Ajoutez votre fonction de référencement (à "appeler" par wp_head) qui prend ces valeurs pour la page actuelle et les insère dans le <head> HTML.

// echo noindex tag if post or page has a "my_noindex" custom field with a value of "y"|"Y"|"yes" ...
function my_meta_tags() {
   $noindex = (get_post_meta( get_queried_object_id(), 'my_noindex', true ));
   if (strtolower(substr($noindex,0,1)) == 'y') { 
     ?><meta name="robots" content="noindex" />
     <?php return; // noindex so no point in doing any other SEO stuff
   }

   // other SEO stuff

}
add_action( 'wp_head', 'my_meta_tags',2);

Jeff Starr article sur le roulement de votre propre code de référencement _ (avec titre et description) vous aidera. Il nécessite un thème personnalisé/enfant car son code est dans le fichier header.php. Toutefois, une grande partie du code pourrait être modifiée pour la fonction my_meta_tags ci-dessus. Le référencement peut ne pas être appliqué comme vous le souhaitez, mais c’est la beauté du bricolage: si vous souhaitez utiliser votre description soigneusement élaborée dans un champ personnalisé (le cas échéant), sinon votre extrait personnalisé, sinon les premiers caractères de la description; alors vous pouvez écrire votre code en conséquence. J'ai également l'intention d'écrire un article sur ce sujet - si j'y parviens, je vais ajouter un lien.

Omissions du code de l'article:

  • Empêche les étiquettes de titre en double (car certains thèmes insèrent leurs propres). Les thèmes modernes et correctement conçus doivent vous permettre de supprimer la balise title themes lorsque vous ajoutez les éléments suivants à votre site functions.php.

    function my_remove_stuff() {
      remove_theme_support( 'title-tag' ); 
    }
    add_action('after_setup_theme', 'my_remove_stuff', 15);
    
  • Tags canoniques . Ajoutez ce qui suit à la première fonction ci-dessus:

    //if post or page has a "my_Canon" custom field
    $my_Canon = get_post_meta( get_queried_object_id(), 'my_Canon', true );
    if ( ! empty($my_Canon)) :
       echo '<link rel="canonical" href="' . $my_Canon . '" />';
       remove_action('wp_head', 'rel_canonical'); // prevnts Wordpress inserting a Canon tag - we don't want two
    endif;
    

Un plugin SEO est la bonne option pour de nombreux utilisateurs. Cependant, si vous êtes heureux d’écrire votre propre code, il y a de nombreux avantages: éviter le gonflement, éviter le verrouillage/la dépendance au plugin, éviter (dans certains cas) de payer pour une assistance, le référencement fonctionne comme vous le souhaitez; aucun problème de conflit de référencement avec le référencement sur vos propres pages personnalisées dynamiques, etc.

0
scytale