Отображать только один связанный текст категории продукта на любой странице в Woocommerce - PullRequest
0 голосов
/ 27 октября 2018

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

Какой шорткод мне нужно использовать для отображения только одной категории продуктов (без отображения продуктов из этой категории) на любой странице?

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 27 октября 2018

Я думаю, что вы спрашиваете, чтобы получить ссылку из категории продуктов для отображения названия категории связанных продуктов. Для этого вы можете создать собственный шорткод:

add_shortcode('linked_pcat', 'display_a_linked_product_category');
function display_a_linked_product_category( $atts ) {
    $atts = shortcode_atts( array(
        'term' => '',
    ), $atts, 'linked_pcat' );

    $taxomomy = 'product_cat';
    $value    = $atts['term'];

    if( is_numeric( $value ) || (string) (int) $value == $value ) {
        $field = 'term_id';
        $value = (int) $atts['term'];
    } else {
        $field = 'slug';
        $value = sanitize_title( $atts['term'] );
    }

    if( term_exists( $value, $taxomomy ) ) {
        $term      = get_term_by( $field, $value, $taxomomy );
        $term_link = get_term_link( $term, $taxomomy );

        return '<a href="' . $term_link . '">' . $term->name . '</a>';
    }
    return false;
}

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


ИСПОЛЬЗОВАНИЕ:

Примечание: Для обозначения категории продукта можно использовать название термина, термин «слаг» или идентификатор термина…

1) В текстовом редакторе Wordpress (например, с именем термина) :

[linked_pcat term='Clothing']

2) Внутренний php-код (например, с термином slug) :

echo do_shortcode( "[linked_pcat term='t-shirts']" );

3) В php-файле между html-кодом (например, с термином Id) :

<?php echo do_shortcode( "[linked_pcat term='t-shirts']" ); ?>
...