web-dev-qa-db-fra.com

Commentaire du code à Header.php dans un thème enfant?

Je crée un thème enfant pour la première fois et j'avais quelques questions concernant le code ajouté à l'en-tête.

Dans un thème non enfant, il y a certains codes que j'ajoute à mon fichier header.php, tels que Google Analytics, les outils Google pour les webmasters, les annonces d'achat et de vente, le graphique ouvert Facebook, etc.

Comment faites-vous cela dans un thème enfant? Créez-vous un fichier header.php dans votre thème enfant? Si oui, comment cela se fait-il? Est-ce la même chose que le @import que j'ai utilisé sur le CSS?

Merci.

15
Rick Smith

Je voudrais accrocher dans l'action wp_head. Je placerais ceci dans un plugin afin de l'abstraire de votre couche de présentation. Cela permet d’évoluer et de changer de thème. Cela évite également tout dommage indirect lié à l'analyse si une étape est manquée dans la migration d'un thème à un autre.

add_action('wp_head', 'wpse_43672_wp_head');
function wpse_43672_wp_head(){
    //Close PHP tags 
    ?>
    ADD YOUR PLAIN HTML CODE HERE
    <?php //Open PHP tags
}
18
Brian Fegter

Pour modifier l'en-tête d'un thème enfant, copiez le fichier header.php du thème parent dans le thème enfant, puis modifiez-le. WordPress verra que vous avez un header.php dans votre thème enfant et l'utiliser à la place du thème parent header.php

Tous les fichiers de modèle que vous avez placés dans votre thème enfant auront priorité sur le même fichier dans le thème parent lorsque WordPress l’appellera.

Tout ce qui va dans la balise devrait être fait en utilisant quelque chose comme la fonction dans la réponse de Brians. S'il s'agit d'un thème spécifique, vous pouvez le placer dans un fichier appelé functions.php dans votre dossier de thème sans aucune étape supplémentaire.

4
Tom J Nowell

Merci à Brian Fegter . Si cette réponse vous aide, veuillez évaluer la réponse de Brian ci-dessus.

Ceci est un exemple entièrement fonctionnel de la façon d'ajouter des éléments à "l'en-tête" par son propre plugin. Dans ce cas, j'ajoute les propriétés de Facebook Open Graph pour les boutons Partager et J'aime.

Créez simplement un fichier PHP avec le nom spécifié dans "Plugin Script" au début de l'exemple de code, placez-le dans un dossier portant le même nom sans l'extension, évidemment, puis copiez ce dossier dans la destination. "/ wp-content/plugins".

Ensuite, dans "Wordpress", actualisez "Plugins" et vous verrez votre nouveau plugin installé. Activez-le simplement et vos pages commenceront à contenir les métadonnées de Open Graph Facebook et Twitter.

enter image description here

TRÈS IMPORTANT: Le fichier PHP doit être encodé en UTF-8 sans nomenclature et ne doit comporter absolument aucun caractère à la fin. Doit assurer cela.

<?php
/*
    Plugin Name: My Facebook Open Graph Protocol
    Plugin Script: my-facebook-open-graph-protocol.php
    Plugin URI: 
    Description: Add Facebook Open Graph Protocol to header
    Author: Diego Soto (Thanks to Brian Fegter)
    Donate Link: 
    License: GPL    
    Version: 0.1-alpha
    Author URI: https://wordpress.stackexchange.com/questions/43672/how-to-add-code-to-header-php-in-a-child-theme
    Text Domain: myfogp
    Domain Path: languages/
*/

/*  Copyright 2014 Diego Soto  (http://disientoconusted.blogspot.com.ar/)

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License, version 2, as
    published by the Free Software Foundation.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
*/

add_action('wp_head', 'wpse_43672_wp_head');

function wpse_43672_wp_head(){
    $title = get_the_title() ." &lsaquo; ". get_bloginfo( "name", "display" );

    $src = wp_get_attachment_image_src( get_post_thumbnail_id(get_the_ID()), array( 90,55 ), false, "" ); 

    $face_metad = get_post_meta(get_the_ID(), "metadescription", true);

    $Twitter_metad = get_post_meta(get_the_ID(), "metadescription140", true);
    if (empty($Twitter_metad)) 
        $Twitter_metad = $face_metad;

    //Close PHP tags 
    ?>    
    <meta property="og:title" content="<?php echo esc_attr($title); ?>" />
    <meta property="og:image" content="<?php echo esc_attr($src[0]); ?>" />
    <meta property="og:url" content="<?php the_permalink(); ?>" />
    <meta property="og:description" content="<?php if (!empty($face_metad)) echo esc_attr($face_metad); else the_excerpt(); ?>" />

    <meta name="Twitter:title" content="<?php echo esc_attr($title); ?>" />
    <meta name="Twitter:image" content="<?php echo esc_attr($src[0]); ?>" />    
    <meta name="Twitter:url" content="<?php the_permalink(); ?>" />
    <meta name="Twitter:description" content="<?php if (!empty($Twitter_metad)) echo esc_attr($Twitter_metad); else the_excerpt(); ?>" />
    <?php //Open PHP tags
}
?>

Toute personne intéressée par les fonctionnalités du plugin.

  • Le titre sera la concaténation du nom de la page en cours et du nom du site.

  • Si un champ personnalisé appelé "metadescription" existe, le plug-in tente d'extraire la description de ce champ. Sinon, prenez la description de l'extrait.

  • En tant qu'image, le plug-in essaie d'utiliser la vignette de l'image sélectionnée sur la page.

2
DiegoSoto