web-dev-qa-db-fra.com

Comment supprimer un panneau d'administration require_once du thème parent du thème enfant functions.php?

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?

3
micah

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.

5
Otto

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.

0
Chip Bennett