Плагин детский Wordpress - PullRequest
       15

Плагин детский Wordpress

0 голосов
/ 16 ноября 2018

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

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

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

Ответы [ 2 ]

0 голосов
/ 16 ноября 2018

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

0 голосов
/ 16 ноября 2018

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