Maison >Tutoriel CMS >WordPresse >Approfondir les crochets et filtres WordPress
Cet article explore les crochets et filtres WordPress, les outils puissants pour personnaliser les plugins et les thèmes. Les développeurs peuvent les utiliser pour ajouter des fonctions personnalisées à des points spécifiques de l'opération de WordPress.
Concepts clés:
remove_action
Fonction: Cette fonction supprime les crochets et filtres standard. Il nécessite le nom de crochet, la fonction pour supprimer et la priorité de la fonction. remove_action
. Cela peut être difficile si l'objet de classe n'est pas facilement accessible. WordPress utilise un système de crochets et de filtres pour permettre aux développeurs d'intégrer des fonctionnalités personnalisées. Ces crochets fournissent des points d'intervention dans le flux de travail WordPress. Les plugins et les thèmes reposent fortement sur ce système, soit en interne, soit pour offrir des points d'extension pour les développeurs. Les crochets insuffisamment exposés peuvent limiter les options de personnalisation.
De nombreux plugins et thèmes utilisent des principes de programmation orientés objet (OOP), définissant les fonctionnalités au sein des classes. La suppression ou le remplacement des crochets au sein de ces classes présente des défis uniques.
Suppression des crochets standard:
La suppression des crochets en dehors des classes est relativement simple à l'aide de la fonction remove_action
. Cette fonction a besoin:
$tag
: le nom du crochet. $function_to_remove
: la fonction à supprimer. $priority
: La priorité de la fonction lorsqu'elle est ajoutée. do_action
déclenche les fonctions ajoutées via add_action
.
Exemple: WooCommerce Bread Crumbs
La barre de pain de WooCommerce, affichée via do_action( 'woocommerce_before_main_content' );
, peut être supprimée:
<code class="language-php">remove_action('woocommerce_before_main_content', 'woocommerce_breadcrumb', 20);</code>
Suppression des crochets dans les classes:
La suppression des crochets dans les classes est plus complexe. La variable de classe doit être transmise à remove_action
:
<code class="language-php">remove_action('woocommerce_before_main_content', 'woocommerce_breadcrumb', 20);</code>
Localiser l'objet de classe est crucial. Pour les classes singleton, utilisez des méthodes comme MyClass::getInstance()
. Sinon, essayez d'y accéder à l'échelle mondiale (par exemple, global $myClassObject
). Inspecter les éléments et revenir à leurs fonctions associées peut aider à identifier le crochet et la fonction.
Exemple: WooCommerce Emails
La classe WC_Emails
dans WooCommerce gère la génération de messagerie. Pour supprimer les détails des clients des e-mails:
<code class="language-php">remove_action('hook_name', array($myclass, 'my_function_remove'), 10);</code>
Exemple: suppression de crochet de classe personnalisée
Cet exemple montre la suppression d'un crochet d'une classe personnalisée dans un thème parent, géré dans un thème enfant:
<code class="language-php">function remove_customer_email_details($instance) { remove_action('woocommerce_email_customer_details', array( $instance, 'customer_details'), 10); } add_action('woocommerce_email', 'remove_customer_email_details');</code>
Lorsque cette technique échoue:
Si l'objet de classe est inaccessible, considérez:
Ce guide complet permet aux développeurs de gérer efficacement les crochets et les filtres WordPress pour une personnalisation améliorée du site. N'oubliez pas de hiérarchiser les plugins et les thèmes adaptés aux développeurs qui offrent un accès ample à crochets.
(La section FAQ restante est omise par la brièveté, car il s'agit d'une répétition d'informations déjà couvertes dans l'article.)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!