WordPress : Thème enfant vide – problème functions.php

Publié par Jean-Michel le

J’ai créé un thème enfant et déplacé toutes les modifications que j’avais dans le thème parent functions.php dans functions.php du thème enfant. Maintenant, si je prévisualise le thème, il est vide.

J’ai trois choses à faire : modifier le nombre de balises affichées dans le cloud, masquer une catégorie de produits et afficher un aperçu des livres Google.

Je ne vois aucune erreur dans ce code, et cela fonctionne quand il est dans le parent.

J’apprécierais toute aide, je suis totalement bloqué!

<?php

function change_tag_cloud_widget() {
    $args['number'] = 15;
    return $args;
}
add_filter( 'widget_tag_cloud_args', 'change_tag_cloud_widget' );

add_action( 'pre_get_posts', 'custom_pre_get_posts_query' );

function custom_pre_get_posts_query( $q ) {

if ( ! $q->is_main_query() ) return;
if ( ! $q->is_post_type_archive() ) return;
if ( ! is_admin() ) {

$q->set( 'tax_query', array(array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => array( 'hands-on' ), // Don't display products in the hands-on category on the shop page
'operator' => 'NOT IN'
)));
}

remove_action( 'pre_get_posts', 'custom_pre_get_posts_query' );

    }

add_shortcode('gbooks', 'sc_embed_google_books');
function sc_embed_google_books( $atts ){
    extract(shortcode_atts(array(
            "id" => '',
            "width"  => '600',
            "height" => '900',
    ), $atts));
    return '<script type="text/javascript" src="http://books.google.com/books/previewlib.js"></script>
    <script type="text/javascript">
    GBS_insertPreviewButtonPopup("'.$id.'", '.$width.','.$height.');
    </script>';
}


function get_google_tag( $isbn_metadata ) {
return (
    /* '<span class="post-meta-key">Preview: </span>' . */
    '<script type="text/javascript" src="http://books.google.com/books/previewlib.js"></script>' .
    '<script type="text/javascript">' .
    'GBS_insertPreviewButtonPopup('ISBN:' . $isbn_metadata . '');' .
    '</script>'
);
}

?>

Solution n°1 trouvée

J’ai créé un thème enfant et déplacé toutes les modifications que j’avais dans le thème parent functions.php dans functions.php du thème enfant

Ne déplacez pas toutes les fonctions du thème parent dans le thème enfant, ajoutez simplement les modifications au thème enfant et laissez le parent functions.php tel qu’il est fourni avec le thème.

En conséquence, vous chargez probablement les fonctions deux fois.

Contrairement à style.css, le functions.php d’un thème enfant ne remplace pas son homologue du parent. Au lieu de cela, il est chargé en plus du fichier functions.php du parent. (Plus précisément, il est chargé juste avant le fichier du parent.)

http://codex.wordpress.org/Child_Themes#Using_functions.php

Catégories : Wordpress

Jean-Michel

Jean-Michel est en charge de la partie blog du site. Il met en place la stratégie de contenu et répond aux questions fréquentes sur Wordpress.

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *