从wp_list_ages中排除某些模板

时间:2019-04-26 作者:Sketchybear

我想做一些类似于Exclude pages with certain template from wp_list_pages, 但是$exclude 变量似乎没有返回_wp_page_template 值,然后使用模板筛选出相关页面guidance-note-template.php 从列表中。任何提示,非常感谢。

<?php

global $post;

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

$children = get_pages( array( \'child_of\' => $post->ID ) );
$hasChild = (count( $children ) > 0 );
$page_id = ($hasChild) ? $post->ID : wp_get_post_parent_id( $post->ID );
    wp_list_pages( array(
    \'title_li\'    => \'\',
    \'child_of\'    => $page_id,
    \'exclude\'      => implode(",", $exclude),
));
?>

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

对于要显示的子页面\'hierarchical\' => 0 还必须在get\\u pages()函数中设置选项。

我复制了您的代码,最初得到了相同的结果(它没有返回任何页面)。将层次设置添加到0使其返回我为该模板设置的2个页面,然后可以将其排除。然后,它输出除这2个之外的所有其他子级,我想这是您想要的。

解决方案积分:Older Stack Overflow answer

相关推荐

Custom term templates

所以,我在网上做了一些研究,但没有找到可靠的答案,所以我来了。我需要为特定类别创建自定义woocommerce类别页面。例如,我有一个类别叫做“Awesome”。而不是使用由短代码生成的常规类别页面[product_category category=\"something\"], 我想为自定义特定类别页面Awesome.我发现我需要编辑taxonomy-product_cat.php 但我不知道如何将其链接到名为awesome.换句话说,我正在考虑制作php文件的自定义副本,然后将其添加为主题templ