我已经安装了一个插件,允许我在产品页面上添加和自定义相关产品 - WooCommerce Custom Related Products。
插件将相关ID存储在post_meta
表中:
meta_key
=> _wcrp_related_ids
meta_values
=> 一个:3:{I:0; S:3:" 159&#34 ;; I:1; S:3:" 158&#34 ;; I:2; S:3: " 244&#34 ;;}
我想根据存储的顺序订购相关产品,例如159,158,244。
我已经能够使用以下代码通过产品ID订购相关产品。但我不确定如何通过meta_values
进行修改以对其进行排序。
add_filter('woocommerce_output_related_products_args', 'jk_related_products_args');
function jk_related_products_args($args)
{
$args['orderby'] = 'id'; // This works
return $args;
}
答案 0 :(得分:0)
请查看WP_Query文档。您应该找到自定义元订购所需的内容。
答案 1 :(得分:0)
当您正在寻找something like this时,WordPress就是这样 功能,您需要在
post__in
中传递orderby
。
add_filter('woocommerce_output_related_products_args', 'wh_related_products_args');
function wh_related_products_args($args)
{
global $post;
$related = get_post_meta($post->ID, '_wcrp_related_ids', true); //replace it with your metakey
//if a product do not have any realted product then don't alter order by
if ($related)
{
$args['orderby'] = 'post__in';
}
return $args;
}
参考:Order by & include array by specific post ids
代码进入您的活动子主题(或主题)的functions.php
文件。或者也可以在任何插件php文件中。
代码已经过测试并且有效。
希望这有帮助!