Плагин дочерний Wordpress

Я хочу добавить следующую строку в один из файлов woocommerce в конкретном: wp-content \ plugins \ woocommerce \ templates \ archive-product.php

<div class = "breadcrumps-header"><?php if ( function_exists( 'yoast_breadcrumb' ) ) {yoast_breadcrumb();} ?></div>

Но в следующем обновлении Woocommerce я потеряю модификацию. Как это сделать, чтобы добавить подобный плагин chlid?

Проверьте, есть ли в рассматриваемом шаблоне какие-либо перехватчики в этой области, которые можно было бы использовать для вставки содержимого извне; в противном случае вы можете объявить «поддержку woocommerce» в своей собственной теме и впоследствии перезаписать определенные файлы шаблонов WC оттуда.

misorude 16.11.2018 15:34

Вы используете дочернюю тему?

zipkundan 16.11.2018 15:37

Прежде всего, я бы порекомендовал сначала найти крючок для панировочных сухарей. Если есть, вы можете добавить свой код с помощью ловушки. Файл php должен быть помещен в папку вашей дочерней темы или новую папку плагина, чтобы предотвратить удаление при обновлении.

idpokute 16.11.2018 17:20
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
3
56
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Если вы создадите папку в своей теме и назовете ее 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 } ?>

Привет!! Спасибо за Ваш ответ. Я тестировал твой способ, но мне все равно не нравится. Это очень просто. Большое спасибо

Lauramisidro 20.11.2018 08:52
Ответ принят как подходящий

Если вы посмотрите на этот файл (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, поэтому выберите тот, который ближе всего к тому, где вы хотите разместить свой код, и вы должны получить то, что вам нужно, немного поэкспериментировав.

Большое спасибо!!!!! Я установил "плагин фрагментов кода", добавил ваш код, и он отлично работает!

Lauramisidro 20.11.2018 08:59

Пожалуйста! Рад слышать, что это именно то, что вам нужно.

John O 20.11.2018 19:07

Другие вопросы по теме