从WordPress5.5版开始,可自动创建站点地图sitemap.xml文件,路径如:
https://10.1pxeye.com/wp-sitemap.xml
该sitemap页面会列出所有的公开页面。但是像用户页面等不便于被收录。攻击者可以通过用户名发起暴力破解攻击。

抑或有些页面不希望被搜索引擎收录。有必要将它们从sitemap页面中排除。

有以下几种情况:

通过ID移除指定页面
// 通过ID移除指定页面
function ope_disable_sitemap_specific_page($args, $post_type) {
	if ('page' !== $post_type) return $args; // 如果post_type不是page则跳过。这里可以灵活调整。
	$args['post__not_in'] = isset($args['post__not_in']) ? $args['post__not_in'] : array();
	$args['post__not_in'][] = 132; //排除页面的ID
	$args['post__not_in'][] = 5263; //排除页面的ID
	return $args;
}
add_filter('wp_sitemaps_posts_query_args', 'ope_disable_sitemap_specific_page', 10, 2);
完全禁用sitemap
add_filter('wp_sitemaps_enabled', '__return_false');
移除自定义文章类型:
// 移除指定的自定义文章类型
function ope_disable_sitemap_post_types($post_types) {
	unset($post_types['my_video']);
	return $post_types;
}
add_filter('wp_sitemaps_post_types', 'ope_disable_sitemap_post_types');
移除用户列表:
// 移除用户列表
add_filter( 'wp_sitemaps_add_provider', function ($provider, $name) {
  return ( $name == 'users' ) ? false : $provider;
}, 10, 2);
移除所有taxonomies:
// 移除taxonomies
add_filter( 'wp_sitemaps_add_provider', function ($provider, $name) {
  return ( $name == 'taxonomies' ) ? false : $provider;
}, 10, 2);
移除特定taxonomy:
// 移除特定taxonomy
function remove_tax_from_sitemap( $taxonomies ) {
  unset( $taxonomies['category'] );
  return $taxonomies;
}
add_filter( 'wp_sitemaps_taxonomies', 'remove_tax_from_sitemap' );