我希望内容创建者能够在编辑页面时选择一个页面模板,指出该页面不应包含在网站地图中
这对我来说似乎有点尴尬。我建议改为add a meta box 这使内容创建者能够为每个页面切换“包含在站点地图中”设置。也就是说,从wp_list_pages
将是相同的,因为选定的模板也存储在post元数据下的键_wp_page_template
.
第一步是获取满足meta query, 无论是检查页面模板还是在元框处理程序中设置的标志,以指示该页面将从站点地图中排除。我们还设置fields
参数,因此返回的帖子只包含ID数组。与查询整个页面对象相比,这将节省内存。
$args = array(
\'fields\' => \'ids\',
\'post_type\' => \'page\',
\'posts_per_page\' => -1,
\'meta_query\' => array(
array(
\'key\' => \'_hide_from_sitemap\',
\'compare\' => \'EXISTS\',
)
)
);
$pages_to_exclude = new WP_Query( $args );
运行后,
$pages_to_exclude->posts
将是一个页面ID数组,您可以将其作为
exclude
的参数
wp_list_pages
.