[网站运营] 开发者如何自定义WordPress自带的XML站点地图功能
作者:精品资源网 日期:2022-06-26 08:09:34 浏览:329 分类:站长帮
在WordPress 5.5中,引入了一项新功能,该功能将基本的、可扩展的 XML网站地图功能添加到 WordPress 核心中。虽然搜索引擎可以从站点内和其他站点的链接中发现页面,但是站点地图通过允许搜索引擎蜘蛛快速、全面地识别站点地图中包含的所有网址并使用关联的元数据来学习有关这些网址的其他信号,从而对这种方法进行了补充。在WordPress 5.5中,WordPress将导出一个站点地图索引文件/wp-sitemap.xml。这是主要的XML文件,其中包含WordPress网站公开的所有站点地图页面的列表。
该站点地图索引最多可容纳50000个站点地图,单个站点地图最多可容纳2000个条目(可过滤)。默认情况下,将为所有公开和可公开查询的文章类型和分类、以及作者存档,当然还有网站的主页创建站点地图。
WordPress自动创建的robots.txt文件将引用XML站点地图索引,以便搜索引擎可以轻松找到。
在前端渲染站点地图需要SimpleXML PHP扩展。如果此扩展名不可用,将显示错误消息,而不是站点地图,并且会发送HTTP状态代码501(“未实现”)。
添加自定义站点地图
WordPress提供开箱即用的内置内容类型(如页面和作者存档)的站点地图。如果您要开发的插件添加了除那些标准功能之外的自定义功能,或者只是想在您的网站上包含一些自定义网址,则添加自定义站点地图提供程序可能是有意义的。
为此,您需要做的就是创建一个自定义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 ); } );
提供者将负责获取所有站点地图和站点地图条目,并确定分页。
删除某些站点地图
现有3种适用于WordPress对象类型(如文章,分类法和用户)的站点地图提供程序。如果要删除其中之一(例如“用户”提供程序),则可以利用wp_sitemaps_add_provider过滤器来删除。示例如下:
add_filter( 'wp_sitemaps_add_provider', function( $provider, $name ) { if ( 'users' === $name ) { return false; } return $provider; }, 10, 2 );
类似地,如果要禁用特定文章类型或分类法的站点地图生成,请分别使用wp_sitemaps_post_types或wp_sitemaps_taxonomies过滤器。示例:为page文章类型禁用站点地图
add_filter( 'wp_sitemaps_post_types', function( $post_types ) { unset( $post_types['page'] ); return $post_types; } );
示例:为post_tag分类法(标签)禁用站点地图
add_filter( 'wp_sitemaps_taxonomies', function( $taxonomies ) { unset( $taxonomies['post_tag'] ); return $taxonomies; } );
向站点地图条目添加其他标签
站点地图协议指定一组特定的网站地图用于条目支持的属性。其中,仅URL网址(loc)标记是必需的。所有其他标记(例如changefreq和priority)都是站点地图协议中的可选标记,通常不会被搜索引擎使用,这就是WordPress仅列出网址本身的原因。如果开发人员确实愿意,他们仍然可以添加这些标签。
您可以使用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 );
同样,您可以使用wp_sitemaps_index_entry过滤器在站点地图索引上添加lastmod。注意:站点地图索引(sitemap index)不支持sitemaps protocal。
尝试添加任何不受支持的标签将导致_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 );
完全禁用站点地图功能
如果您更新WordPress 后台 设置 – 阅读 的“对搜索引擎的可见性”设置以阻止搜索引擎将您的网站编入索引,则站点地图将被禁用。您还可以使用
wp_sitemaps_enabled
过滤器覆盖它。示例如下:
add_filter( 'wp_sitemaps_enabled', '__return_false' );
注意:这样做不会删除用于站点地图的重写规则,因为在禁用站点地图时,为了发送适当的响应,需要使用它们。
图片/视频/新闻站点地图
WordPress当前实现并支持sitemaps.org上定义的核心Sitemaps格式。此功能未涵盖站点地图扩展名,例如图像、视频和新闻站点地图,因为它们通常仅对少数网站有用。在未来的WordPress版本中,可能会添加过滤器和挂钩以启用此类功能。目前,这仍将留给插件来实施。
新增的类和函数
在撰写本文时,以下是引入的新类和函数的完整列表。
函数:
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 –过滤站点地图索引样式表的内容。
猜你还喜欢
- 03-06 [建站交流] PicGo + smms 构建图床
- 11-18 [emlog技巧] Emlog非插件显示评论者IP属地
- 07-28 [运维笔记] 解决网站出现"SSL_ERROR_RX_RECORD_TOO_LONG"问题
- 07-28 [运维笔记] 宝塔面板手动和自动释放Linux服务器内存及清理服务器日志缓存
- 06-30 [站长帮] CentOS(宝塔)部署安装发布Scratch3.0
- 06-30 [站长帮] CentOS 7安装宝塔面板
- 05-01 [涨姿势] 宽带师傅不说的秘密,用手机就能解除宽带限速,网速立马翻倍
- 03-23 [站长帮] WordPress 网站打不开提示“将您重定向的次数过多”的解决方法
- 08-06 [网站教程] 利用宝塔实现百度自动推送
- 06-27 [网站运营] WordPress纯代码为文章自动生成标签和自动添加标签内链
- 06-27 [网站运营] WordPress网站专用CloudFlare免费CDN缓存规则
- 06-26 [网站运营] 开发者如何自定义WordPress自带的XML站点地图功能
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[攻略教程] 《百度》神龙红包活动怎么玩?
[攻略教程] 《冒险大作战》传奇榜前50名职业(9.03)
[攻略教程] 《冒险大作战》新职业征稿大赛奖励——台服
[攻略教程] 《冒险大作战》超级矿工卡使用规则
[攻略教程] 《冒险大作战》头部越战选手——回复法
[有声读物] 《刘兰芳评书集合》【46部】【播讲:刘兰芳】【WMA】
[攻略教程] 《光遇》9.3免费魔法怎么领取
[攻略教程] 《光遇》9.3大蜡烛在哪
[攻略教程] 《光遇》9.3雪糕代币在哪
[攻略教程] 《光遇》9.3季节蜡烛位置
[福利] 徐宅宅 性感热舞直播回放 超清画质
[写真] 栗子私房 VOL.0062 海边的白色少女 【30P】
[福利] 主播米娜 性感热舞直播回放 超清画质 视频合集
[福利] 主播亦亦 性感热舞直播回放 超清画质 37个视频合集
[文件编辑] WinHex 21.2 SR-2_x86_x64 绿色单文件版
[图片浏览] 2345看图王去广告安装版 x86 x64 11.3.0.10165
[Android] 阅读APP(小说软件)v3.23.032021 解除限制版
[电影] 惊声尖笑1-6【 4K 】
[福利] 6.8日吃瓜热门合集
[教育学习] 2024【武忠祥】考研数学领学班
[影视] 美国内战 4K蓝光原盘下载+高清MKV版/内战/帝国浩劫:美国内战(台)/美帝崩裂(港) 2024 Civil War 63.86G
[影视] 盟军敢死队 WEB-DL版下载/攻壳型战/无限制军团(港)/绝密型战/非君子作战部/非绅士战争部/非绅士特攻队(台) 2024 The Ministry of Ungentlemanly Warfare 10.6G
[影视] 特技狂人 WEB-DL版下载/坠落的人/特技猎人/特技玩家(台) 2024 The Fall Guy
[影视] 疯狂的麦克斯:狂暴女神 WEB-DL版下载/疯狂的麦克斯:弗瑞奥萨 / 芙莉欧莎:疯狂麦斯传奇篇章(台) / 芙莉欧莎:末日先锋传说(港) / 疯狂的麦克斯前传 / Mad Max: Furiosa / Furiosa 2024 Furiosa: A Mad Max Saga 26.45G
[课程]【黑马程序员】Python开发就业课 - 带源码课件
[福利] 徐宅宅 性感热舞直播回放 超清画质
[攻略教程] 《纸嫁衣7卿不负》第四章通关攻略
[福利] 主播亦亦 性感热舞直播回放 超清画质 37个视频合集
[写真] 栗子私房 VOL.0062 海边的白色少女 【30P】
[影视] 光荣之路 蓝光原盘下载+高清MKV版 1957 Paths of Glory 23.9G
- 最新评论
-
谢谢支持!!精品资源网 评论于:08-22 终于有了,谢谢分享Bernery 评论于:08-20 旧时的喜剧,哈哈哈精品资源网 评论于:08-01 这个电视剧应该是我最喜欢的了,心情不好的时候看看,听听贾队长怎么深入敌后抗日的故事,心里会好一些。zhoumuwang 评论于:07-30 很新啊Bernery 评论于:07-04 谢谢支持精品资源网 评论于:06-29 多谢楼主分享Bernery 评论于:06-17 下来看看,多谢楼主分享Bernery 评论于:06-17 感谢分享上善若水 评论于:06-04 多谢支持~~精品资源网 评论于:05-20
- 热门tag