web-dev-qa-db-fra.com

Comment arrêter PHP code en cours d'exécution dans un thème enfant

Je comprends que vous puissiez ajouter du CSS supplémentaire au-dessus du thème parent, mais comment supprimer le code PHP du fichier functions.php?

Je veux supprimer le thème Masonry plugin dans twentyfourteen et avoir localisé le morceau de code sur line 254.

    if ( is_active_sidebar( 'sidebar-3' ) ) {
    wp_enqueue_script( 'jquery-masonry' );
    }

Si je modifie le thème parent, je peux simplement commenter ce bloc /* */.

Mais je ne suis pas au courant d'un moyen de changer cela, c'est le thème de mon enfant.

2
pappy

Vous ne pouvez pas réellement "supprimer" le code PHP du thème parent. Ce que vous pouvez faire, c'est annuler les choses faites là-bas.

La contrepartie de wp_enqueue_script est wp_dequeue_script.

Si vous mettez ceci dans votre functions.php, il devrait supprimer le Masonry Plugin (non testé)

add_action( 'wp_print_scripts', 'de_script', 100 );

function de_script() {
    wp_dequeue_script( 'jquery-masonry' );
}

Source: Référence de la fonction/script de file d'attente wp @ Codex

Comme je n’ai pas testé cela, sachez que cela pourrait avoir des effets secondaires indésirables si le thème s’appuyait sur le Masonry Plugin.

1
kraftner

Je pense que si votre problème ne concerne que le script, vous pouvez simplement le désenregistrer de votre thème enfant:

function deregister_jqmasonry() {
   if ( is_active_sidebar( 'sidebar-3' ) ) {
       wp_deregister_script( 'jquery-masonry' );
   }
}
add_action( 'wp_enqueue_scripts', 'deregister_jqmasonry', 100 );

La priorité élevée de add_action garantit son exécution à la fin.

2
TCattd