导读
经过插件禁用XML站点地图
经过代码禁用XML站点地图
//禁用wordpress5.5+自带网站地图 www.mcbke.com add_filter( 'wp_sitemaps_enabled', '__return_false' );
固然搜索引擎能够从站点内和其他站点的链接中发现页面,但是站点地图经过允许搜索引擎蜘蛛快速、全面地辨认站点地图中包含的一切网址并运用关联的元数据来学习有关这些网址的其他信号,从而对这种办法停止了补充。
本文细致引见了开发人员能够自定义XML 站点地图功用的各种办法。例如,假如您正在开发具有某些相似功用的插件,那么本文将向您展现如何将其与中心的新站点地图功用集成。
关键要点
该站点地图索引最多可包容50000个站点地图,单个站点地图最多可包容2000个条目(可过滤)。
默许状况下,将为一切公开和可公开查询的文章类型和分类、以及作者存档,当然还有网站的主页创立站点地图。
WordPress自动创立的robots.txt文件将援用XML站点地图索引,以便搜索引擎能够轻松找到。
技术请求
配置站点地图行为
添加自定义站点地图
为此,您需求做的就是创立一个自定义PHP类,用于扩展中心中的笼统类WP_Sitemaps_Provider。然后,您能够运用该wp_register_sitemap_provider()功用停止注册。示例如下:
add_filter( 'init', function() { $provider = new Awesome_Plugin_Sitemaps_Provider(); wp_register_sitemap_provider( 'awesome-plugin', $provider ); } );
删除某些站点地图
add_filter( 'wp_sitemaps_add_provider', function( $provider, $name ) { if ( 'users' === $name ) { return false; } return $provider; }, 10, 2 );
示例:为page文章类型禁用站点地图
add_filter( 'wp_sitemaps_post_types', function( $post_types ) { unset( $post_types['page'] ); return $post_types; } );
add_filter( 'wp_sitemaps_taxonomies', function( $taxonomies ) { unset( $taxonomies['post_tag'] ); return $taxonomies; } );
向站点地图条目添加其他标签
您能够运用wp_sitemaps_posts_entry/ wp_sitemaps_users_entry/ wp_sitemaps_taxonomies_entry过滤器额外添加标签,比方changefreq、priority或lastmod到站点地图的当个网址中。
示例:添加文章的最后修正日期
add_filter( 'wp_sitemaps_posts_entry', function( $entry, $post ) { $entry['lastmod'] = $post->post_modified_gmt; return $entry; }, 10, 2 );
尝试添加任何不受支持的标签将招致_doing_it_wrong通知。
从站点地图中扫除单个帖子
假如您正在开发一个允许将特定文章或页面设置为noindex的插件,则最好也将其从站点地图中扫除。
wp_sitemaps_posts_query_args过滤器可用于从站点地图中扫除特定帖子。示例如下:
add_filter( 'wp_sitemaps_posts_query_args', function( $args, $post_type ) { if ( 'post' !== $post_type ) { return $args; } $args['post__not_in'] = isset( $args['post__not_in'] ) ? $args['post__not_in'] : array(); $args['post__not_in'][] = 123; // 123 is the ID of the post to exclude. return $args; }, 10, 2 );
完整禁用站点地图功用
add_filter( 'wp_sitemaps_enabled', '__return_false' );
留意:这样做不会删除用于站点地图的重写规则,由于在禁用站点地图时,为了发送恰当的响应,需求运用它们。
图片/视频/新闻站点地图
新增的类和函数
wp_sitemaps_get_server –检索当前的Sitemaps效劳器实例。
wp_get_sitemap_providers –获取站点地图提供程序的数组。
wp_register_sitemap_provider –注册新的站点地图提供程序。
wp_sitemaps_get_max_urls –获取站点地图的最大网址数。
类:
WP_Sitemaps –担任设置重写和注册一切提供程序的主类。
WP_Sitemaps_Index –构建站点地图索引页面,该页面列出了一切站点地图的链接。
WP_Sitemaps_Provider –其他站点地图提供程序扩展的基类,并包含共享功用。
WP_Sitemaps_Registry –处置注册站点地图提供程序。
WP_Sitemaps_Renderer –担任依据站点地图协议将站点地图数据呈现为XML。
WP_Sitemaps_Stylesheet –此类提供XSL款式表来设置一切站点地图的款式。
WP_Sitemaps_Posts –为“文章”对象类型及其子类型(自定义文章类型)构建站点地图。
WP_Sitemaps_Taxonomies –为“分类法”对象类型及其子类型(自定义分类法)构建站点地图。
WP_Sitemaps_Users –为“用户”对象类型构建站点地图。
在撰写本文时,以下是可用钩子和过滤器的完好列表。
常规:
wp_sitemaps_enabled –过滤能否启用XML Sitemap。
wp_sitemaps_max_urls –过滤站点地图上显现的URL的最大数量。
wp_sitemaps_init –初始化站点地图时触发。
wp_sitemaps_index_entry –过滤站点地图索引的站点地图条目。
提供者:
wp_sitemaps_add_provider –在添加站点地图提供程序之前对其停止过滤。
wp_sitemaps_post_types –过滤要包含在站点地图中的文章类型列表。
wp_sitemaps_posts_entry –过滤单个文章的站点地图条目。
wp_sitemaps_posts_show_on_front_entry –当“show_on_front”选项等于“posts”时,过滤主页的站点地图条目。
wp_sitemaps_posts_query_args –过滤帖子类型站点地图查询的查询参数。
wp_sitemaps_posts_pre_url_list –在生成帖子URL列表之前将其过滤(短路)。
wp_sitemaps_posts_pre_max_num_pages –在生成最大页面(短路)之前对其停止过滤。
wp_sitemaps_taxonomies –过滤分类法列表以包含在站点地图中。
wp_sitemaps_taxonomies_entry –过滤单个分类词的站点地图条目。
wp_sitemaps_taxonomies_query_args –挑选分类法站点地图查询的查询参数。
wp_sitemaps_taxonomies_pre_url_list –在生成分类法URL列表之前将其过滤(短路)。
wp_sitemaps_taxonomies_pre_max_num_pages –在生成最大页面(短路)之前对其停止过滤。
wp_sitemaps_users_entry –过滤单个用户的站点地图条目。
wp_sitemaps_users_query_args –过滤用户站点地图查询的查询参数。
wp_sitemaps_users_pre_url_list –在生成URL(短路)之前过滤用户URL列表。
wp_sitemaps_users_pre_max_num_pages –在生成最大页面(短路)之前对其停止过滤。
款式表:
wp_sitemaps_stylesheet_css–过滤站点地图款式表的CSS。
wp_sitemaps_stylesheet_url –过滤站点地图款式表的URL。
wp_sitemaps_stylesheet_content –过滤站点地图款式表的内容。
wp_sitemaps_stylesheet_index_url –过滤站点地图索引款式表的URL。
wp_sitemaps_stylesheet_index_content –过滤站点地图索引款式表的内容。