具有Get_Pages的多个元密钥

时间:2018-03-07 作者:Andrew Spiers

我目前有以下代码,其中我按页面模板过滤;

$pages = get_pages( array(
‘post_type’ => ‘page’,
‘meta_key’ => ‘_wp_page_template’,
‘meta_value’ => ‘unit.php’,
‘hierarchical’ => 0
) );
我还想按ACF字段排序,因此需要添加以下内容:;

‘meta_key’  => ‘status’,
‘orderby’   => ‘meta_value’,
‘order’ => ‘DESC’
是否可以让这两个meta\\u关键部件一起工作?

1 个回复
最合适的回答,由SO网友:Pat J 整理而成

我不确定你能不能用get_pages(), 但你应该可以用get_posts():

$args = array(
    \'post_type\'  => \'page\',
    \'meta_query\' => array(
        \'template_clause\' => array(
            \'key\'     => \'_wp_page_template\',
            \'value\'   => \'unit.php\',
            \'compare\' => \'=\', 
        ),
        \'status_clause\' => array(
            \'key\'     => \'status\',
            \'compare\' => \'EXISTS\',
        ),
        \'relation\' => \'AND\',
    ),
    \'orderby\' => \'status_clause\',
    \'order\'   => \'DESC\',
);
$pages = get_posts( $args );

// Better option, per Tom J Nowell\'s comment on the question
$page_query = new WP_Query( $args );
我尚未测试此代码,但我认为它应该满足您的要求。

参考文献WP_Query » Custom Field (ie, post meta) parameters ([get_posts()](https://developer.wordpress.org/reference/functions/get_posts/) 参数遵循的计划与WP_Query)
  • WP_Query
  • WP_Query improvements (包括有关命名条款的信息)
  • 结束

    相关推荐

    Order pages by date

    我正在尝试制作一个onepager并将所有页面加载到一个页面中,如果这有意义的话?现在它是按阿尔法贝蒂的头衔订购的。我想按日期订购。这是网站:http://st358373.cmd16c.cmi.hanze.nl/aljen/home/我已经尝试过此方法,但Wordpress不会加载页面:Wrong Sub-Page Order$pages = get_pages(); foreach ($pages as $page_data) { $content = apply_f