WordPress : Comment faire en sorte que les modèles de module de thème enfant remplacent le modèle de module principal

Publié par Jean-Michel le

Pour une raison quelconque, mes modèles de thème enfant ne sont pas reconnus.

Je crois avoir suivi la bonne procédure (et vérifié la mise en cache, etc.)

/wp-content/themes/divi-child/includes/builder/module/Blog.php

devrait remplacer

/wp-content/themes/Divi/includes/builder/module/Blog.php

(même chemin et même fichier avec une légère mise à jour)

Le modèle de module de thème enfant n’est pas reconnu (les modifications apportées au modèle de thème enfant n’ont aucun effet)

J’ai testé l’édition du fichier principal et cela fonctionne immédiatement à chaque fois.

Tout conseil grandement apprécié.

Acclamations


ÉDITER

Le ci-dessous devrait fonctionner selon Divi, mais cela casse le site lorsque j’essaie.

Lire également:  Wordpress : Le menu déroulant se bat les uns contre les autres

Apparemment, il ne suffit pas de copier le module dans le thème enfant. Le fichier doit être dupliqué. Ensuite, copiez le fichier dans child-theme/custom-modules/Blog.php. Après avoir ajouté le code suivant au bas du fichier functions.php :

function divi_custom_blog_module() {
get_template_part( '/custom-modules/Blog' );
$myblog = new custom_ET_Builder_Module_Blog();
remove_shortcode( 'et_pb_blog' );
add_shortcode( 'et_pb_blog', array( $myblog, '_render' ) );
}
add_action( 'et_builder_ready', 'divi_custom_blog_module' );

Solution n°1 trouvée

J’ai déjà eu ce problème similaire à celui-ci. Je pense – peut-être que le modèle de blog est appelé par un autre fichier dans le dossier « thème père » quelque chose comme :

$url = dirname(__FILE__)."/includes/builder/module/Blog.php";

cela causera le problème. pour résoudre ce problème, il y a deux façons:

Lire également:  Wordpress : Valeur du champ de personnalisation dans la variable functions.php

#1 : trouvez et éditez le fichier qui s’appelle le modèle de blog (déconseillé)

#2 : trouvez et copiez le fichier qui appelle le modèle de blog dans votre thème enfant (vous pouvez d’abord essayer avec index.php, content.php ou single.php) (recommandé)

Solution n°2 trouvée

Il y a quelques autres étapes https://intercom.help/elegantthemes/en/articles/4532734-moving-blog-module-in-child-theme

  1. Créez un nouveau dossier dans le dossier du thème enfant, par exemple, inclut le dossier.

  2. Copiez maintenant le fichier Divi/includes/builder/module/Blog.php du thème parent dans le dossier child-theme/includes/.

  3. Ouvrez le fichier Blog.php de votre thème enfant et remplacez cette ligne (tout en haut) :

    require_once 'helpers/Overlay.php';
        
    class ET_Builder_Module_Blog extends ET_Builder_Module_Type_PostBased {

avec:

    get_template_part( '/includes/builder/module/helpers/Overlay.php' );
    
    class custom_ET_Builder_Module_Blog extends ET_Builder_Module_Type_PostBased {

Remplacez : $this->vb_support = ‘on’ ; avec $this->vb_support = ‘off’ ;

Lire également:  Wordpress : Remplacer le fichier dans le thème parent

Supprimez cette ligne du bas : new ET_Builder_Module_Blog();

  1. Enfin, ajoutez le code suivant au fichier functions.php dans votre dossier de thème enfant :

/*================================================

#Load custom Blog  Module

================================================*/

function divi_custom_blog_module() {

    get_template_part( '/includes/Blog' );

    $myblog = new custom_ET_Builder_Module_Blog();

    remove_shortcode( 'et_pb_blog' );

    add_shortcode( 'et_pb_blog', array( $myblog, '_render' ) );

}

add_action( 'et_builder_ready', 'divi_custom_blog_module' );

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 *