按自定义字段筛选,按另一个字段排序

时间:2014-10-08 作者:1213

我正在尝试循环自定义帖子类型,通过自定义字段进行过滤artist-status => invited并由另一个自定义字段排序last-name 按字母顺序以下是我设法写的内容,但它没有按我的需要工作:

$args = array(
    \'post_type\' => \'artist\',
    \'posts_per_page\' => -1,
    \'meta_key\' => \'artist-status\',
    \'meta_value\' => \'invited\'
    \'orderby\' => \'meta_value_num\',
    \'order\' => \'ASC\',
    \'meta_query\' => array (
         array( \'key\' => \'last-name\')
       )
);
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();

2 个回复
最合适的回答,由SO网友:Robert hue 整理而成

您排序不正确。您需要检查artist-status 元密钥meta_query 和排序方式last-name 图元键。

这是您的问题。

$args = array(
    \'post_type\' => \'artist\',
    \'posts_per_page\' => -1,
    \'meta_key\' => \'last-name\',
    \'orderby\' => \'meta_value\',
    \'order\' => \'ASC\',
    \'meta_query\' => array (
        array(
            \'key\' => \'artist-status\',
            \'value\' => \'invited\',
            \'compare\' => \'=\',
        )
    )
);

$loop = new WP_Query( $args );

SO网友:Giovanni Putignano

从…起Codex 此代码段可能对您的案例有用:

显示“my\\u custom\\u post\\u type”类型的帖子,按“age”排序,并进行筛选以仅显示年龄3和4的帖子(使用meta\\u查询)

$args = array(
    \'post_type\'  => \'my_custom_post_type\',
    \'meta_key\'   => \'age\',
    \'orderby\'    => \'meta_value_num\',
    \'order\'      => \'ASC\',
    \'meta_query\' => array(
        array(
            \'key\'     => \'age\',
            \'value\'   => array( 3, 4 ),
            \'compare\' => \'IN\',
        ),
    ),
);
$query = new WP_Query( $args );

结束

相关推荐

Sort order in get_posts

我创建了一个custom template 对于客户。这将是一个多站点安装上的多语言站点设置。正如你在每个分类字母下看到的,帖子都是按字母顺序开始的,但“M”和“O”都不正常。如果您使用顶部的字母栏点击这些类别,这些帖子将按字母顺序排列。两个页面使用相同的代码,所以我不知道我做错了什么。我有一种感觉,我在某处有一个查询冲突,但我找不到它。下面是进行排序的代码:<section class=\"atozlist\"> <?php $newargs =