我开始有点发疯了,我肯定错过了一些可怕的事情,但我已经尝试了很多解决方法。
我的问题是:我想在每个产品下有6个相关产品。(了解一个类别中是否有6种以上的产品)
我目前有相关的产品抢占它的共享类别。但当我加载一个产品时,它可能会显示1个相关产品,或4个,或3个。每次装载的相关产品数量不同。非常奇怪。
这是我的密码。
if ( ! defined( \'ABSPATH\' ) ) {
exit;
}
global $product, $woocommerce_loop;
if ( empty( $product ) || ! $product->exists() ) {
return;
}
if ( ! $related = $product->get_related( 6 ) ) {
return;
}
$cats_array = array(0);
// get categories
$terms = wp_get_post_terms( $product->id, \'product_cat\' );
// select only the category which doesn\'t have any children
foreach ( $terms as $term ) {
$children = get_term_children( $term->term_id, \'product_cat\' );
if ( !sizeof( $children ) )
$cats_array[] = $term->term_id;
}
$args = apply_filters( \'woocommerce_related_products_args\', array(
\'post_type\' => \'product\',
\'ignore_sticky_posts\' => 1,
\'no_found_rows\' => 1,
\'posts_per_page\' => 6,
\'orderby\' => $orderby,
\'post__in\' => $related,
\'post__not_in\' => array( $product->get_id() ),
\'tax_query\' => array(
array(
\'taxonomy\' => \'product_cat\',
\'field\' => \'id\',
\'terms\' => $cats_array
),
)
) );
$products = new WP_Query( $args );
$woocommerce_loop[\'name\'] = \'related\';
$woocommerce_loop[\'columns\'] = apply_filters(\'woocommerce_related_products_columns\', 6);
如果任何人有任何建议,将不胜感激。非常感谢。
最合适的回答,由SO网友:Mohammad Tajul Islam 整理而成
您需要更改$orderby的值。也许$orderby的当前值是rand
\'orderby\' => $orderby,
现在需要根据需要更改**orderby=>\'\'**的值。例如
\'orderby\' => \'title\'
\'orderby\' => \'menu_order title\'
\'orderby\' => \'comment_count\'
\'orderby\' => \'meta_value_num\'
\'orderby\' => \'title menu_order\'
Order & Orderby Parametersorderby (string | array) - Sort retrieved posts by parameter. Defaults to \'date (post_date)\'. One or more options can be passed.随机顺序。您还可以使用“RAND(x)”,其中“x”是整数种子值。注意,“orderby”rand需要有一个“order”参数才能工作
“ID”-按邮政ID排序。请注意大写作者——按作者排序。(“post\\u作者”也可接受。)标题-按标题排序。(“post\\u title”也可接受。)“名称”-按职位名称排序(post slug)。(“post\\u name”也可接受。)更多详细信息
https://codex.wordpress.org/Class_Reference/WP_Query