Редактирование хлебных крошек только для страниц архива тегов товаров в Woocommerce - PullRequest
0 голосов
/ 20 сентября 2018

Я нашел, где в WooCommerce (WC) я могу редактировать напрямую, чтобы получить желаемый результат, который редактирует следующую функцию: https://github.com/woocommerce/woocommerce/blob/master/includes/class-wc-breadcrumb.php#L222

private function add_crumbs_product_tag() {
        $current_term = $GLOBALS['wp_query']->get_queried_object();
        $this->prepend_shop_page();
        /* translators: %s: product tag */
        $this->add_crumb( sprintf( __( 'My Edit: %s', 'woocommerce' ), $current_term->name ), get_term_link( $current_term, 'product_tag' ) );
    }

Теперь я знаю, что это плохая практиканапрямую отредактируйте плагин WC, поэтому я ищу альтернативу, чтобы при обновлении WC изменения не перезаписывались.

Попытка переопределения

Я пыталсядобавить мой отредактированный класс в мою дочернюю тему (mytheme-child / woocommerce / includes / class-wc-breadcrumb.php), но это не похоже на работу.

Что я могу сделать?

1 Ответ

0 голосов
/ 21 сентября 2018

Вместо этого попробуйте следующее, используя специальный woocommerce_get_breadcrumb фильтр-хук:

add_filter( 'woocommerce_get_breadcrumb', 'custom_product_tag_crumb', 20, 2 );
function custom_product_tag_crumb( $crumbs, $breadcrumb ){
    // Targetting product tags
    $current_taxonomy  = 'product_tag';
    $current_term      = $GLOBALS['wp_query']->get_queried_object();
    $current_key_index = sizeof($crumbs) - 1;

    // Only product tags
    if( is_a($current_term, 'WP_Term') && term_exists( $current_term->term_id, $current_taxonomy ) ) {
        // The label term name
        $crumbs[$current_key_index][0] = sprintf( __( 'My Edit: %s', 'woocommerce' ), $current_term->name );
        // The term link (not really necessary as we are already on the page)
        $crumbs[$current_key_index][1] = get_term_link( $current_term, $current_taxonomy );
    }
    return $crumbs;
}

Код находится в файле function.php вашей активной дочерней темы (или активной темы).Проверено и работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...