更改 WooCommerce 短代码输出中的标记

Change markup in WooCommerce shortcode output

是否可以使用 WooCommerce 简码,例如[product_category category="appliances"] 修改标记以在某些元素周围包含 <div> 标记?

我知道我可以通过复制短代码的功能来做到这一点,但是仅仅添加一个包装似乎有点过分了<div>

我可以用 jQuery 做到这一点,但不希望它们加载有任何延迟。

@Updated

是的,这绝对有可能。您可以通过类似的方式实现此目的:

if( !function_exists('prod_cat') ) {

    function prod_cat( $atts ) {

        extract(shortcode_atts(array(
            'cat'   => '',  // category
            'class' => '' // Optional adding class to <div> tag


        ), $atts));

        if ( $class != '') {
            $class = ' class="' . $class . '"';
        }

        return '<div'.$class.'>' . do_shortcode("[product_category category=" . $cat . "]") . '</div>';

    }

    add_shortcode('prod_cat', 'prod_cat');
}

将以上代码片段粘贴到活动子主题或主题的function.php文件中

此代码已经过测试且功能齐全。


用法:

你有 2 个参数 shortcode:

  • cat="your_category" 设置您的类别
  • class="your_div_class" 将 css 类 设置为 <div> 标签 (可选).

您可以像任何短代码一样在任何 woocommerce 页面中使用它:

[prod_cat cat="appliances" class="my_optional_div_class"]