将类传递给WooCommerce短代码[Relative_Products]

时间:2020-04-23 作者:Peter Højlund Andersen

这些天我一直在使用Woocommerce短代码(Woocommerce 3.8)。

对于许多产品,您可以将“class”作为值传递,例如产品快捷码:[products class="custom-class"] 然后返回内容的包装器将具有custom-class.

But not for [reltative_products]!!??

如果您有一个动态设计,并且希望能够根据页面上显示的内容更改相关产品的设计,那么这将非常有用。

如果你看看the Woocommerce Docs 您可以看到以下功能:

    public static function related_products( $atts ) {
        if ( isset( $atts[\'per_page\'] ) ) {
            $atts[\'limit\'] = $atts[\'per_page\'];
        }

        // @codingStandardsIgnoreStart
        $atts = shortcode_atts( array(
            \'limit\'    => \'4\',
            \'columns\'  => \'4\',
            \'orderby\'  => \'rand\',
        ), $atts, \'related_products\' );
        // @codingStandardsIgnoreEnd

        ob_start();

        // Rename arg.
        $atts[\'posts_per_page\'] = absint( $atts[\'limit\'] );

        woocommerce_related_products( $atts );

        return ob_get_clean();
    }
正如您所看到的,shortcode\\u atts中没有类???

How to change this?

1 个回复
SO网友:Peter Højlund Andersen

I have found a solution but i am not sure how good it is

1)将短代码复制到函数中。如果从上面复制函数link to Woocommerce Docs 并使用它创建自己的快捷码(it\\u related\\u products\\u函数),然后添加\'class\' => \'\' 对于参数,您现在可以将“class”传递给您的短代码。

function it_related_products_function( $atts ) {
 if ( isset( $atts[\'per_page\'] ) ) {
   $atts[\'limit\'] = $atts[\'per_page\'];
 }

 $atts = shortcode_atts( array(
   \'limit\'    => \'4\',
   \'columns\'  => \'4\',
   \'orderby\'  => \'rand\',
   \'class\'    => \'\',
 ), $atts, \'related_products\' );

 ob_start();

 $atts[\'posts_per_page\'] = absint( $atts[\'limit\'] );

 woocommerce_related_products( $atts );

 return ob_get_clean();

}
related.php 如果设置了,则返回

    <section class="woocommerce columns-4 <?php echo !empty($class) ? $class : "" ?>">
现在,您可以在任何地方使用带有“class”的自定义快捷码
<?php echo do_shortcode(\'[it_related_products limit="4" class="row it-books-fp red-border-bottom"]\'); ?>

相关推荐

Custom Post type shortcodes

我使用高级自定义字段在我的主题中创建自定义帖子类型(功能)。我想知道如何创建自定义帖子类型的短代码。因此,我只使用任何页面的自定义帖子类型的短代码来显示我在自定义帖子类型(功能)中添加的信息。