如何使用 ACF 字段类型“user”对帖子进行排序WP_Query

how to sort post by ACF Field type "user" using WP_Query

提问人:zwt 提问时间:11/6/2023 最后编辑:zwt 更新时间:11/7/2023 访问量:30

问:

通过使用高级自定义字段插件,我创建了一个自定义字段(类型:用户,格式:数组)。 我正在尝试按用户display_name对帖子进行排序。

录制到 ACF/wordpress 文档,这是使用的 args 数组: 在本例中,结果是按用户“ID”而不是用户“display_name”排序的帖子。 如何获取按“display_name”排序的帖子列表输出。array( 'post_status' => 'publish', 'post_type' => 'the_post_type', 'orderby' => 'meta_value', 'meta_key' => 'users', 'order' => "ASC" );

wordpress 高级自定义字段

评论


答:

0赞 Fahad Aziz 11/7/2023 #1

在将高级自定义字段插件与用户数组字段一起使用时,要按用户的显示名称而不是其 ID 对帖子进行排序,您需要修改查询参数。由于 ACF 中的用户字段将用户数据保存为数组,因此需要指定子项display_name以按用户的显示名称进行排序。请试试这个;

$args = array(
'post_status' => 'publish',
'post_type' => 'the_post_type',
'meta_query' => array(
    array(
        'key' => 'users',  // Your ACF field key
        'compare' => 'EXISTS',
    ),
),
'orderby' => 'meta_value', // Sort by meta value
'meta_key' => 'users_0_display_name', // Sub-key for display_name
'order' => 'ASC',
);
$the_query = new WP_Query($args);

请确保将“users_0_display_name”替换为 ACF 字段中用户显示名称的正确子项。这应该按用户的显示名称升序对帖子进行排序。

评论

0赞 zwt 11/7/2023
感谢您的回答,但它没有显示结果。这是包含用户数组的示例:Array ( [ID] => 00 [user_firstname] => 00_user_firstname [user_lastname] => 00_user_lastname [nickname] => 00_nickname [user_nicename] => 00_user_nicename [display_name] => 00_display_name。