web-dev-qa-db-fra.com

Où puis-je trouver les fonctions déclenchées dans un crochet?

Je suis nouveau dans WP, mais j'ai déjà utilisé d'autres systèmes de gestion de contenu.

Je voulais faire un simple magasin Woo-commerce, pour la pratique. J'ai installé WP, Woo-commerce et le thème Woo-commerce Store Front et tout s'est bien passé.

Maintenant, je veux commencer à personnaliser le thème. La première chose que je voulais changer était de mettre un nouveau logo dans l'en-tête. J'ai ouvert header.php dans le répertoire de thèmes de Storefront et trouvé la division qui englobe l'emplacement de l'image du logo, mais tout ce que je vois est:

do_action( 'storefront_header' );

J'ai fouillé dans le répertoire, mais je n'ai trouvé aucun fichier ni aucune fonction storefront_header.

Alors, que suis-je censé faire ici? Existe-t-il des guides ou des cartes pour trouver chaque fonction d'élément ou fichier PHP?

Comment trouver, dans la structure du modèle, les éléments sur lesquels je souhaite travailler?

1
MeltingDog

En regardant la version actuelle du header.php de Storefront:

/**
 * Functions hooked into storefront_header action
 *
 * @hooked storefront_skip_links                       - 0
 * @hooked storefront_social_icons                     - 10
 * @hooked storefront_site_branding                    - 20
 * @hooked storefront_secondary_navigation             - 30
 * @hooked storefront_product_search                   - 40
 * @hooked storefront_primary_navigation_wrapper       - 42
 * @hooked storefront_primary_navigation               - 50
 * @hooked storefront_header_cart                      - 60
 * @hooked storefront_primary_navigation_wrapper_close - 68
 */
do_action( 'storefront_header' ); ?>

Ce bloc de commentaires décrit toutes les fonctions de rappel (avec les priorités) rattachées à l'action storefront_header.

Si vous recherchez du texte dans les fichiers du répertoire storefront pour la chaîne 'storefront_header', vous pouvez trouver ces fonctions. Il n’existe pas de moyen standard d’organiser l’apparition de ces fonctions, mais vous pouvez les localiser manuellement en commençant par functions.php et en suivant tout le code à partir de là. La recherche est plus efficace cependant.

storefront_site_branding est la fonction qui gère l’affichage du logo. Il est situé dans storefront/inc/storefront-template-functions.php.

2
Dave Romsey

do_action n'est pas directement lié à la hiérarchie des modèles, il s'agit essentiellement d'un déclencheur pour les observateurs qui souhaitent observer le moment où l'action spécifique est déclenchée.

Le meilleur moyen de connaître les observateurs consiste à effectuer une recherche de code pour le nom de l'action (storefront_header dans ce cas). Dans ce cas, il est limité aux fichiers de thème mais si vous travaillez sur un thème qui "nécessite" des plugins, vous voudrez probablement également effectuer une recherche dans le code du plugin.

Un casse-tête fréquent (en particulier dans le code principal) est une action créée dynamiquement en combinant des chaînes. Par conséquent, si une recherche sur storefront_header ne donne pas de résultats, vous pouvez vouloir essayer de rechercher le préfixe ou le suffixe de l'action.

2
Mark Kaplun