繁体   English   中英

Wordpress 按标题的第一个字母而不是完整标题排序帖子

[英]Wordpress order posts by first letter of title instead of full title

查询自定义帖子类型时,我需要使用数字 ACF 字段按标题按“字母顺序”顺序返回结果,次要顺序。 起初我做了以下并且它按预期工作:

'meta_key' => 'sort_weight',
'orderby' => 'title meta_value_num',

但是,由于没有一个帖子标题是相同的,因此二次排序毫无意义。 我真正需要的是只按标题的第一个字母来订购。 这样,所有以“A”开头的帖子将按照 ACF 字段的顺序首先显示,然后重复其余字母,例如:

Post title (weight)
AB (1)
AA (2)
BB (1)
BA (2)

使用标准 wp_query 做你想做的事,我不确定你将如何完成。 但是,如果我处在你的位置,我会创建一个自定义的 postmeta 字段用作第一个搜索,你可以像这样自动执行它:

add_action( 'save_post', 'vgs_save_sort_order', 10 );
function vgs_save_sort_order( $post_id ) {
    $sort_order = substr( get_the_title( $post_id ), 0, 1 );
    update_post_meta( $post_id, 'custom_sort_order', $sort_order );
}

然后您可以向查询添加多个orderby参数,如下所示:

'orderby' => 'custom_sort_order ASC, sort_weight ASC',

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM