我想做一些类似于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),
));
?>
最合适的回答,由SO网友:tmdesigned 整理而成
对于要显示的子页面\'hierarchical\' => 0
还必须在get\\u pages()函数中设置选项。
我复制了您的代码,最初得到了相同的结果(它没有返回任何页面)。将层次设置添加到0使其返回我为该模板设置的2个页面,然后可以将其排除。然后,它输出除这2个之外的所有其他子级,我想这是您想要的。
解决方案积分:Older Stack Overflow answer