按选定的自定义字段排序帖子
问题描述:
我想按ACF select
自定义字段排序一些custom posts type
。我试着从ACF
文档中找到它,但它没有工作,结果以相同的顺序出现。 选择字段包含1到30之间的数字,它们应表示帖子的位置。 我对query args
代码:按选定的自定义字段排序帖子
$args = array(
'post_type' => 'opalsgevent_speaker',
'posts_per_page' => $count,
'meta_key' => 'ordine',
'orderby' => 'meta_value',
'order' => 'ASC'
);
答
首先,我会检查是否meta_key名称是正确的。
下一个:也许他们排序,但没有按照您的预期方式。从WP_Query documentation:
'meta_value' - (...)排序将字母是细的字符串(即话),但可为数字(例如,1,3,34,4是意想不到的,56 ,6等,而不是你自然期待的1,3,4,6,34,56)。使用'meta_value_num'代替数字值。
所以不meta_value
但meta_value_num
答
你可以尝试使用“meta_value_num”,而不是 'meta_value':
'orderby' => 'meta_value_num',
https://codex.wordpress.org/Class_Reference/WP_Query#Custom_Field_Parameters
+0
我已经尝试了'meta_value'和'meta_value_num',仍然不起作用。 – EBuzila
我都试过'meta_value'和' meta_value_num',我也检查过和'meta_key'是正确的,不,它们没有排序,它们和以前完全一样,位置没有改变。 – EBuzila
当你尝试t时会发生什么获得这个meta_value?像'echo get_post_meta(some-post-id,'ordine',true);'?也许这实际上不是一个数字,而是一些数字或对象的数组 – kkarpieszuk
奇怪的是它返回正确的数字...... :(这就是为什么我认为选择字段的作用不同 – EBuzila