Dans le thème parent, ce qui suit se trouve au bas du fichier functions.php .
require_once(TEMPLATEPATH . '/admin/admin-menu.php');
Dans function.php du thème de l'enfant, ce code inclura le panneau d'administration de l'enfant.
require_once(STYLESHEETPATH . '/admin/admin-menu.php');
Comme vous pouvez le constater, je ne devrais pas utiliser les deux fichiers, car le fichier du bas inclut get_stylesheet_directory_uri()
au lieu de get_template_directory_uri()
pour certains fichiers localisés (js, css). Ainsi, je dois retirer le fichier parent du chargement
Je crois que je dois utiliser le hook remove_action
, mais je ne sais pas comment le faire correctement. Impossible de trouver une bonne réponse sur Google non plus.
J'ai commencé à écrire ce qui suit dans le fichier functions.php de mon thème enfant, mais je ne sais pas comment l'écrire correctement.
function remove_parent_admin_panel {
remove_action('remove_panel', '[WHAT-GOES-HERE?]');
}
Ensuite, je suppose que je dois utiliser un hook add_action
pour ajouter la fonction ci-dessus afin de supprimer le panneau d'administration parent.
Devrais-je envelopper le parent require_once
avec une instruction de fonction? Suis-je sur la bonne voie?
Dans les cas où vous souhaitez exiger/inclure les fichiers PHP, tout en permettant aux thèmes enfants de remplacer ces fichiers PHP, vous devez utiliser la fonction Locate_template.
Exemple: le parent fait ceci:
locate_template( 'admin/file.php', true );
Ceci trouve le fichier admin/file.php dans le thème enfant ou le thème parent, puis effectue une requête sur celui-ci (c’est le cas pour le vrai).
Donc, pour remplacer le fichier dans l’enfant, il vous suffit de remplacer le fichier dans l’enfant. Simple. Facile.
Remarque: La méthode utilise par défaut require_once. Si vous voulez seulement exiger seulement, passez un troisième paramètre de false.
Dans le fichier \admin\admin-menu.php
du thème parent, recherchez la fonction add_menu_page()
. Il devrait être encapsulé dans une fonction et cette fonction appelée dans un appel add_action( 'admin_init', 'function-name' )
.
Vous devez appeler remove_action( 'admin_init', 'function-name' )
quel que soit le nom de cette fonction.