WordPress WooCommerce Storefront Theme — Где определяются функции?

Я новичок в теме WooCommerce и Storefront. Я пытаюсь понять исходный код, прежде чем начать его модифицировать. Я просто испытываю трудности с поиском всех необходимых кодов.

Когда я открывал header.php, я терялся, потому что все функции были привязаны к некоторым другим файлам, подобным этому.

do_action( 'storefront_before_header' );

Где эти функции определены в теме Storefront? и как я могу найти, где все эти функции do_action будут определены в будущем, кроме как просто открыть все файлы для поиска строк?

Я посмотрел в файлы, такие как:

  • витрина-functions.php
  • витрина-шаблона functions.php
  • витрина-шаблона hooks.php
  • functions.php

2

Решение

Для всех продуктов, связанных с woocommerce, есть @hooked тег в блоке phpdoc перед каждым хуком. Если нет @hooked теги, этот хук это просто зарезервированный хук, который может быть использован в будущем.

Давайте посмотрим крюк storefront_header:

/**
* 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' );

После @hooked тег — это имя функции и приоритет, в котором функция выполняется при запуске действия. Нижние числа соответствуют более раннему исполнению.

Большинство функций, подключенных к крючку, находится внутри storefront-template-functions.php и добавил внутри storefront-template-hooks.php,

Вы можете найти эти функции с помощью простого поиска IDE в папке темы.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]