我必须制作一个Wordpress插件,为WooCommerce添加快捷码。我想从一个特定的产品类别和最大数量的产品显示产品。快捷码参数应为类别ID和产品限制。我想我应该使用WP\u Query
object。
我需要让它看起来像这样:
短代码如下:[productslist\u category=“[category\u ID]”limit=“[product\u limit]”]
我使用下面的代码从这个答案(感谢LoicTheAztec):
if( !function_exists('products_list_in_a_product_category') ) {
function products_list_in_a_product_category( $atts ) {
// Shortcode Attributes
$atts = shortcode_atts(
array(
'cat' => '',
'limit' => '4', // default product per page
'column' => '4', // default columns
),
$atts, 'productslist'
);
// The query
$posts = get_posts( array(
'post_type' => 'product',
'posts_per_page' => intval($atts['limit'])+1,
'product_cat' => $atts['cat'],
) );
$output = '<div class="products-in-'.$atts['cat'].'">';
// The loop
foreach($posts as $post_obj)
$ids_array[] = $post_obj->ID;
$ids = implode( ',', $ids_array );
$columns = $atts['column'];
$output .= do_shortcode ( "[products ids=$ids columns=$columns ]" ) . '</div>';
return $output;
}
add_shortcode( 'productslist', 'products_list_in_a_product_category' );}
但是我犯了一个错误。它说内爆函数有问题。
这是我的原始答案,它是关于您删除的上一个问题的,并且您在此处使用的位置:使用基于类别的自定义快捷码显示WooCommerce产品
该代码在WooCommerce 2.6. x和3版本中完美运行。
这是我的原始答案代码,你已经采取(之前删除你的前一个问题):
这是一个基于您的短代码与现有的[product]
短代码混合的解决方案。正如你将看到的,你将得到你所期待的…
这是代码:
if( !function_exists('products_list_in_a_product_category') ) {
function products_list_in_a_product_category( $atts ) {
// Shortcode Attributes
$atts = shortcode_atts(
array(
'cat' => '',
'limit' => '5', // default product per page
'column' => '4', // default columns
),
$atts, 'productslist'
);
// The query
$posts = get_posts( array(
'post_type' => 'product',
'posts_per_page' => intval($atts['limit'])+1,
'product_cat' => $atts['cat'],
) );
$output = '<div class="products-in-'.$atts['cat'].'">';
// The loop
foreach($posts as $post_obj)
$ids_array[] = $post_obj->ID;
$ids = implode( ',', $ids_array );
$columns = $atts['column'];
$output .= do_shortcode ( "[products ids=$ids columns=$columns ]" ) . '</div>';
return $output;
}
add_shortcode( 'productslist', 'products_list_in_a_product_category' );
}
代码进入函数。活动子主题(或主题)或任何插件文件中的php文件。
这段代码在WooCommerce 3上进行了测试,可以正常工作。
用法(示例):
[productslist cat="clothing" limit="4"]
你会得到这个:
-
$args=数组('post_type'=