按无标题的自定义字段对自定义帖子类型进行排序

时间:2014-03-03 作者:ScottMcGready

我的自定义帖子没有标题,而是依赖于自定义字段,如果有标题,我迄今为止尝试的所有解决方案似乎都能奏效。

<?php
$paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;

$args = array(
    \'post_type\' => \'people\',
    \'posts_per_page\' => 40,
    \'meta_key\' => \'surname\',
    \'orderby\' => \'meta_value\',
    \'order\' => \'ASC\',
    \'paged\' => $paged
);
// The Query
query_posts( $args );
?>
这应该行得通(对于其他有标题的自定义帖子类型也行),但我似乎无法在没有标题的帖子上使用它。surname 是自定义帖子类型上的自定义字段people.

1 个回复
SO网友:unifiedac

据我所知,没有标题的帖子是不可能发布的。WP可能会错误地说你的帖子已经发布了,但我很确定它们仍然被视为草稿,这就是为什么你没有得到任何帖子结果。

首先,确保自定义帖子类型支持自定义字段:

$args = array(
    \'post_type\' => \'people\',
    \'posts_per_page\' => 40,
    \'meta_key\' => \'surname\',
    \'orderby\' => \'meta_value\',
    \'order\' => \'ASC\',
    \'paged\' => $paged,
    \'supports\' => array( \'title\', \'editor\', \'custom-fields\')
);
然后,您可以自动填充标题或从元数据创建标题:

Set post title from two meta fields

结束

相关推荐

orderby:date not working

我一直在寻找答案,似乎有很多相反的问题的答案。我正在尝试使用以下代码按发布日期排序,而不是按修改日期排序:query_posts($query_string . \'&orderby=date&order=DESC&posts_per_page=-1\'); 但它仍然是按修改日期排序而不是发布日期,有人能帮忙吗?提前感谢!