Я хочу добавить следующую строку в один из файлов woocommerce в конкретном: wp-content \ plugins \ woocommerce \ templates \ archive-product.php
<div class = "breadcrumps-header"><?php if ( function_exists( 'yoast_breadcrumb' ) ) {yoast_breadcrumb();} ?></div>Но в следующем обновлении Woocommerce я потеряю модификацию. Как это сделать, чтобы добавить подобный плагин chlid?
Вы используете дочернюю тему?
Прежде всего, я бы порекомендовал сначала найти крючок для панировочных сухарей. Если есть, вы можете добавить свой код с помощью ловушки. Файл php должен быть помещен в папку вашей дочерней темы или новую папку плагина, чтобы предотвратить удаление при обновлении.






Если вы создадите папку в своей теме и назовете ее woocommerce и скопируете все файлы с wp-content\plugins\woocommerce\templates\ на wp-content\themes\yourthemename\woocommerce\, вы можете внести изменения в этот файл, и после следующего обновления WooCommerce он не потеряется, только он покажет вам, что вы используете старую версию шаблона, если они внесли изменения в тот же исходный файл, и вам придется вручную объединить их. И сначала создайте дочернюю тему, если это не ваша собственная тема, не помещайте папку woocommerce в исходную тему.
И лучше поместить div в if, потому что вы не хотите показывать пустой div, если этой функции не существует, верно?
<?php if ( function_exists( 'yoast_breadcrumb' ) ) { ?>
<div class = "breadcrumps-header"><?php yoast_breadcrumb(); ?></div>
<?php } ?>
Привет!! Спасибо за Ваш ответ. Я тестировал твой способ, но мне все равно не нравится. Это очень просто. Большое спасибо
Если вы посмотрите на этот файл (https://github.com/woocommerce/woocommerce/blob/v2.2.3/templates/archive-product.php), вы увидите ряд различных действий, которые вы можете использовать в зависимости от того, куда вы хотите вставить этот контент.
Например, вверху есть вот это:
/**
* woocommerce_before_main_content hook
*
* @hooked woocommerce_output_content_wrapper - 10 (outputs opening divs for the content)
* @hooked woocommerce_breadcrumb - 20
*/
do_action( 'woocommerce_before_main_content' );
Комментарий показывает, что собственные хлебные крошки woocommerce привязаны к этому действию с приоритетом 20.
Если вы хотите, чтобы ваш код появился после этого, вы можете добавить что-то вроде следующего в functions.php вашей темы (или где-то еще):
add_action('woocommerce_before_main_content', function() { ?>
<div class = "breadcrumps-header">
<?php if ( function_exists( 'yoast_breadcrumb' ) ) {yoast_breadcrumb();} ?>
</div>
<?php });
25 является приоритетом, гарантируя, что ваш код будет выполняться после функции woocommerce_breadcrumb woocommerce.
В этом скрипте есть много других do_action, поэтому выберите тот, который ближе всего к тому, где вы хотите разместить свой код, и вы должны получить то, что вам нужно, немного поэкспериментировав.
Большое спасибо!!!!! Я установил "плагин фрагментов кода", добавил ваш код, и он отлично работает!
Пожалуйста! Рад слышать, что это именно то, что вам нужно.
Проверьте, есть ли в рассматриваемом шаблоне какие-либо перехватчики в этой области, которые можно было бы использовать для вставки содержимого извне; в противном случае вы можете объявить «поддержку woocommerce» в своей собственной теме и впоследствии перезаписать определенные файлы шаблонов WC оттуда.