Удалить след со страницы результатов поиска продуктов Woocommerce - PullRequest
0 голосов
/ 25 октября 2018

Чтобы быть более конкретным, чем в моем предыдущем вопросе, я хотел бы добиться следующего:

Я использую Woocoomerce и удалил главную страницу магазина, так как у меня есть только категории товаров и мне нужны только эти страницы.Все хлебные крошки отображаются правильно без следа "магазина" в них (поскольку я удалил эту страницу), КРОМЕ для страницы результатов поиска товаров (страницы, которая отображается для результатов из виджета поиска товаров Woocommerce).На этой странице отображаются следующие хлебные крошки:

"Домой / Продукт / Результаты поиска для ..."

Это ЕДИНСТВЕННАЯ страница Woo, на которой все еще отображается след "product" (этоявляется поведением по умолчанию, я проверил новую версию с двадцатью семнадцатью), и мне нужно удалить ее.Интересно, что когда главная страница магазина не удаляется, панировочные сухари на странице результатов поиска товара выглядят так:

"Домой / Магазин / Результаты поиска для ..."

Так что моя цель на самом деле состоит в том, чтобыдобавьте хлебные крошки на страницу результатов поиска, например:

"Домой / Результаты поиска для ..."

Спасибо!

Ответы [ 2 ]

0 голосов
/ 15 июня 2019

У меня была такая же проблема, я перебил breadcrumb.php в WooCommerce, скопировав его в mytheme/woocommerce/global/breadcrumb.php, запустил is_search(), чтобы определить, нахожусь ли я в результатах поиска или нет, а затем array_splice элемент.

<?php
/**
 * Shop breadcrumb
 *
 * This template can be overridden by copying it to yourtheme/woocommerce/global/breadcrumb.php.
 *
 * HOWEVER, on occasion WooCommerce will need to update template files and you
 * (the theme developer) will need to copy the new files to your theme to
 * maintain compatibility. We try to do this as little as possible, but it does
 * happen. When this occurs the version of the template file will be bumped and
 * the readme will list any important changes.
 *
 * @see         https://docs.woocommerce.com/document/template-structure/
 * @package     WooCommerce/Templates
 * @version     2.3.0
 * @see         woocommerce_breadcrumb()
 */

if ( ! defined( 'ABSPATH' ) ) {
    exit;
}

if ( ! empty( $breadcrumb ) ) {

    echo $wrap_before;

    if ( is_search() ) {
        array_splice( $breadcrumb, 1, 1 ); // considering that the element is at the second position.
        // Otherwise :
        // array_splice( $breadcrumb, 0, 1 ); if it's at the first position, etc.
    }

    foreach ( $breadcrumb as $key => $crumb ) {

        echo $before;

        if ( ! empty( $crumb[1] ) && sizeof( $breadcrumb ) !== $key + 1 ) {
            echo '<a href="' . esc_url( $crumb[1] ) . '">' . esc_html( $crumb[0] ) . '</a>';
        } else {
            echo esc_html( $crumb[0] );
        }

        echo $after;

        if ( sizeof( $breadcrumb ) !== $key + 1 ) {
            echo $delimiter;
        }
    }

    echo $wrap_after;

}

вы также можете сделать

    ...
    foreach ( $breadcrumb as $key => $crumb ) {

        // Ignore the "Product" item
        if ( $crumb[0] == 'Product' ) {
            continue;
        }

        echo $before;

        if ( ! empty( $crumb[1] ) && sizeof( $breadcrumb ) !== $key + 1 ) {
            echo '<a href="' . esc_url( $crumb[1] ) . '">' . esc_html( $crumb[0] ) . '</a>';
        } else {
            echo esc_html( $crumb[0] );
        }

        echo $after;

        if ( sizeof( $breadcrumb ) !== $key + 1 ) {
            echo $delimiter;
        }
    }
    ...
0 голосов
/ 25 октября 2018

Это немного обходной путь, но почему бы вам не использовать css:

.search-results.woocommerce .woocommerce-breadcrumb a {
  display: none;
}
.search-results.woocommerce .woocommerce-breadcrumb a:first-child {
  display: inline;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...