从wp_list_ages中排除具有特定模板的页面

时间:2017-08-21 作者:Daniel Vickers

在您将此标记为重复之前,我已经在所有其他问题中尝试了所有方法,但没有一个有效。

我正在尝试排除任何带有页面模板page noindex的页面。来自wp\\u list\\u pages()的php;查询

下面的代码不起作用,当我回显$The\\u查询时,它只显示“Array”。

    <?php 
        $the_query = array(
            \'post_type\'  => \'page\',  /* overrides default \'post\' */
            \'meta_key\'   => \'_wp_page_template\',
            \'meta_value\' => \'page-templates/page-noindex.php\'
        );

        $args = array(
            \'exclude\'      => $the_query,
            \'title_li\'     => \'\',
            \'sort_column\'  => \'menu_order, post_title\',
            \'post_type\'    => \'page\',
                \'post_status\'  => \'publish\' 
        ); ?>

    <?php wp_list_pages($args) ?>

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

丹尼尔,exclude 参数不接受数组。

按以下方式使用代码:

$exclude = [];
foreach(get_pages([\'meta_key\' => \'_wp_page_template\', \'meta_value\' => \'page-templates/page-noindex.php\']) as $page) {
    $exclude[] = $page->post_id;
}

$args = array(
    \'exclude\'      => implode(",", $exclude),
    \'title_li\'     => \'\',
    \'sort_column\'  => \'menu_order, post_title\',
    \'post_type\'    => \'page\',
    \'post_status\'  => \'publish\'
); 
wp_list_pages($args);
我认为您可以根据需要更好地重构它

结束

相关推荐

高级自定义字段Post对象图像字段不在自定义Post类型Single.php中显示

我想知道是否有人能帮我。我有一个自定义的post类型,称为associations。我使用高级自定义字段将一些自定义字段与post类型关联,其中2个是post对象字段。这允许我显示来自其他帖子类型的帖子内容。我想在单个关联中显示此信息。php,我遵循了ACF网站上的文档,但我遇到了一个问题,即post对象available\\u products中的图像未显示此字段标记为“product\\u icon”,post对象字段如下(coverage\\u highlights,available\\u pro