在Woocommerce的任何页面上仅显示一个链接的产品类别文本

时间:2018-10-27 18:50:26

标签: php wordpress woocommerce shortcode custom-taxonomy

我需要在几个常规页面上显示不同的产品类别,但找不到适合的简短代码。

我必须使用哪个短代码在任何页面上仅显示单个产品类别(不显示该类别中的任何产品)?

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

我认为您要问的是从产品类别获取链接以显示链接的产品类别名称。为此,您可以构建自定义的简码:

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文件中。经过测试,可以正常工作。


用法:

  

注意: 对于产品类别,术语可以使用术语名称,术语段或术语ID…

1)在Wordpress文本编辑器(以术语名称为例)中:

[linked_pcat term='Clothing']

2)内部php代码(例如,带有词条)

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

3)在html代码之间的php文件中(例如,带有术语ID)

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