显示自定义字段不为空的第一个帖子,并按标题进行排序

时间:2016-05-07 作者:Raul

我有一个名为“产品”的自定义帖子类型。我的目标是使我在主页上的自定义查询以及搜索查询首先显示具有名为“id\\u number”的自定义字段的帖子不为空,然后显示具有“id\\u number”的其他帖子。所有应按标题排序。

这是迄今为止我的代码,仅用于自定义查询。我还需要它用于搜索页面查询,但我没有做到这一点。

$paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
    $wp_query = new WP_Query( array(
    \'post_type\' => \'products\',
    \'posts_per_page\' => 20,
    \'post_status\' => \'publish\',
    \'pagination\' => true,
    \'meta_query\' => array(
     \'relation\' => \'OR\',
     array( 
           \'key\' => \'id_number\',
           \'compare\' => \'EXISTS\',
                ),
     array( 
          \'key\' => \'id_number\',
           \'compare\' => \'NOT EXISTS\'                
    )
    ),
    \'meta_key\' => \'id_number\',
    \'orderby\' => \'title\',
    \'paged\'=>$paged
    ) ); 
任何帮助都将不胜感激。非常感谢。

2 个回复
SO网友:BlueSuiter

你可以按meta值排序帖子查看codex

https://codex.wordpress.org/Class_Reference/WP_Query

SO网友:Sumeet Shroff

Try this..

$paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
    $wp_query = new WP_Query( array(
    \'post_type\' => \'products\',
    \'posts_per_page\' => 20,
    \'post_status\' => \'publish\',
    \'pagination\' => true,
    \'meta_query\' => array(
     \'relation\' => \'OR\',
     \'id_number\' => array( 
           \'key\' => \'id_number\',
           \'compare\' => \'EXISTS\',
                ),
     \'id2_number\' => array( 
          \'key\' => \'id_number\',
           \'compare\' => \'NOT EXISTS\'                
    )
    ),
    \'meta_key\' => \'id_number\',
    \'orderby\' => \'id_number\',
    \'paged\' => $paged
    ) ); 

相关推荐

将wp_Query替换为wp_User_Query

我在插件中制作了一些订阅者档案和单曲(个人资料页),其中我还包括了一个“用户单曲”模板,通过template_include. 不过,我正在尝试从插件中删除一些模板,以使其使用主题模板。我用了locate_template( \'single.php\' ) 从活动主题中选择单个模板。我没有使用全局wp_query 在本例中显示我的内容,但页面显示了基于查询默认值的循环(十篇帖子)。我想知道的是,我是否可以完全放弃默认查询,用wp_user_query 我可以将查询到的用户ID输入其中。然后我想筛选the