网站模板库
  • 首页
  • web前端工具
    • HTML/JS转换工具
    • JS/HTML格式化工具
    • 字母/英文大小写转换工具
    • robots.txt文件生成工具
    • Js压缩/格式化工具
    • Css在线压缩工具_代码格式化
  • 关于我们
    • 免责声明
    • 联系我们
    • 广告服务
    • 服务项目
    • 关于我们
    • 网站轮播
    • 公告
    • 成都优优科技专用
    • 按行业分类
  • web学院
    • 服务器教程
    • 学习资料
      • 基础书籍
      • 交互书籍
      • 入门教程
      • 特效分类
    • 案例分享
    • web资讯
  • 网页特效
    • 图片特效
    • 导航特效
    • 滑动按钮
    • 表单特效
    • 文字特效
    • 弹窗特效
    • 其他特效
  • 织梦模板
    • 科技/电子/数码/通信
    • 文化/艺术/广告/传媒
    • 装修/设计/家居/家具
    • 基建/施工/地产/物业
    • 餐饮/酒店/旅游/票务
    • 食品/果蔬/饮料/日用
    • 服饰/珠宝/礼品/玩具
    • 摄影/婚庆/家政/生活
    • 运动/健身/体育/器材
    • 学校/教育/培训/科研
    • 美容/保健/医院/医疗
    • 金融/财税/咨询/法律
    • 政府/组织/集团/协会
    • 汽车/物流/交通/搬运
    • 机械/设备/制造/仪器
    • 化工/环保/能源/材料
    • 农业/畜牧/养殖/宠物
    • 其他模版
    • IT/软件/信息/互联网
  • 手机模板
    • 手机APP模板
    • 微信小程序模板
    • wap
  • 网站模板
    • joomla模板
    • Drupal模板
    • z-blog模板
    • EyouCms模板
    • Bootstrap模板
    • 帝国cms模板
    • CmsEasy模板
    • MetInfo模板
    • 购物商城模板
      • Shopify主题
      • PrestaShop主题
    • 后台模板
    • 纯HTML模板
    • ecshop模板
    • phpwind模板
    • pbootcms模板
    • phpcms模板
    • wordpress模板
    • discuz模板
  • 教程
    • 织梦教程
    • Discuz教程
    • WordPress教程
    • Phpcms教程
    • Phpwind教程
    • ECShop教程
    • Joomla教程
    • Drupal教程
    • zblog教程
    • EyouCMS教程
    • 帝国cms教程
    • MetInfo教程
    • CmsEasy教程
登录
当前位置:网站模板库 > web学院 > web资讯 > WordPress站点地图的代码编写
admin web资讯 2020-10-15 14:56:18

WordPress站点地图的代码编写

WordPress站点地图的代码编写,第1张

WordPress站点地图对于刚访问主题网站的用户来说很友善,能给用户对于主题站的访问更加愉快轻松满足他们不同的需求形式,以下站点地图代码带给大家:   

WordPress站点地图的代码编写,第2张

通过代码自定义站点地图

在下面,您将找到代码示例,这些示例可用于自定义WordPress站点地图(在WP 5.5及更高版本中可用)。

完全禁用所有WP网站地图

您可以通过在functions.php文件向主题模板或子主题添加同一行代码来彻底禁用WP自带的站点地图功能:

add_filter('wp_sitemaps_enabled', '__return_false');

我们在这里所做的只是向过滤器挂钩wp_sitemaps_enabled返回的值false,就可以禁用了。注意:如果您更新WordPress常规设置以阻止搜索引擎将您的网站编入索引,则站点地图将被自动禁用。因此,在那种情况下,无需使用任何插件或代码来禁用它。

禁用用户站点地图

对于大多数网站来说,排除/禁用整个用户站点地图以帮助提高安全性可能是一个好主意。以下是实现该功能的代码:

// disable users sitemap

function shapeSpace_disable_sitemap_users($provider, $name) {

return ($name == 'users') ? false : $provider;

}

add_filter('wp_sitemaps_add_provider', 'shapeSpace_disable_sitemap_users', 10, 2);

此代码段无需编辑。只需添加到您的WordPress主题功能即可。

禁用文章类型站点地图

默认情况下,WordPress站点地图包括每种(非空)文章类型的站点地图。因此,对于典型的WordPress网站,这意味着您的站点地图将包含指向以下站点地图的链接:

URL

https://example.com/wp-sitemap-posts-post-1.xml

https://example.com/wp-sitemap-posts-page-1.xml

.

.

以及任何自定义文章类型:

.

.

https://example.com/wp-sitemap-posts-movie-1.xml

https://example.com/wp-sitemap-posts-book-1.xml

.

.

因此,要排除任何“文章”类型的站点地图,请将以下代码添加到您的主题(或简单的插件)中:

// disable post type sitemap

function shapeSpace_disable_sitemap_post_types($post_types) {

unset($post_types['page']); // 可以修改page为你需要的自定义文章类型

return $post_types;

}

add_filter('wp_sitemaps_post_types', 'shapeSpace_disable_sitemap_post_types');

如所写,该代码禁用了page文章类型。因此,您可以将其更改为您要排除的任何文章类型。只需更换page您的文章类型名称(如post,movie,book,等)。

禁用分类法站点地图

默认情况下,WordPress网站地图包含每个(非空)分类法的网站地图。对于典型的WordPress网站,这意味着您的站点地图将包含指向以下站点地图的链接:#p#分页标题#e#

URL

.

.

https://example.com/wp-sitemap-taxonomies-category-1.xml

https://example.com/wp-sitemap-taxonomies-post_tag-1.xml

以及任何自定义分类法:

.

.

https://example.com/wp-sitemap-taxonomies-color-1.xml

https://example.com/wp-sitemap-taxonomies-shape-1.xml

.

.

因此,要排除任何“分类”站点地图,请在主题(或简单插件)中添加以下代码:

// disable taxonomy sitemap

function shapeSpace_disable_sitemap_taxonomy($taxonomies) {

unset($taxonomies['post_tag']); // can be post_tag, category, post_format, or any taxonomy

return $taxonomies;

}

add_filter('wp_sitemaps_taxonomies', 'shapeSpace_disable_sitemap_taxonomy');

如所写,该代码禁用了post_tag分类法。因此,您可以将其更改为要排除的任何分类法。只需更换post_tag你的分类的名称(例如category,post_format,color,book,等)。

从站点地图中排除特定页面

要从WordPress网站地图中排除特定页面,请应用以下代码技术:

// disable specific page

function shapeSpace_disable_sitemap_specific_page($args, $post_type) {

if ('page' !== $post_type) return $args;

$args['post__not_in'] = isset($args['post__not_in']) ? $args['post__not_in'] : array();

$args['post__not_in'][] = 2; // exclude page with ID = 2

return $args;

}

add_filter('wp_sitemaps_posts_query_args', 'shapeSpace_disable_sitemap_specific_page', 10, 2);

注意函数中的第一行,它检查$post_type是否为page。这告诉函数不要执行任何操作,除非当前的帖子类型是“页面”。因此,要从其他文章类型中排除文章,请更改page为要定位的任何文章类型的名称。

函数中的第二行检查以确保post__not_in已设置变量。然后第三行是动作发生的地方。在编写代码时,该代码排除了ID等于2的页面。因此,您可以将该ID更改为要从站点地图中排除的任何页面ID。

要排除多个页面,上述技术将是相同的,但是增加了更多的“排除”行:

// disable specific pages

function shapeSpace_disable_sitemap_specific_pages($args, $post_type) {

if ('page' !== $post_type) return $args;

$args['post__not_in'] = isset($args['post__not_in']) ? $args['post__not_in'] : array();

$args['post__not_in'][] = 2; // exclude page with ID = 2

$args['post__not_in'][] = 3; // exclude page with ID = 3

$args['post__not_in'][] = 4; // exclude page with ID = 4

$args['post__not_in'][] = 5; // exclude page with ID = 5

$args['post__not_in'][] = 6; // exclude page with ID = 6

return $args;

}

add_filter('wp_sitemaps_posts_query_args', 'shapeSpace_disable_sitemap_specific_pages', 10, 2);

编写此代码的方法可能更短一些,但是为了清楚起见,我将其按原样呈现。

从站点地图中排除特定文章#p#分页标题#e#

与以前的技术类似,要从自动生成的WordPress网站地图中排除特定的文章,请执行以下操作:

// disable specific post

function shapeSpace_disable_sitemap_specific_post($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'][] = 1; // exclude post with ID = 1

return $args;

}

add_filter('wp_sitemaps_posts_query_args', 'shapeSpace_disable_sitemap_specific_post', 10, 2);

和以前一样。仅在此处注意函数中的第一行,我们正在检查a是否$post_type等于post。然后魔术发生在第三行,我们排除了ID等于1的文章(著名的“ Hello World”文章)。因此,将该ID更改为您要排除并完成的任何文章。

要排除多个帖子,上述技术将是相同的,但是增加了更多的“排除”行:

// disable specific posts

function shapeSpace_disable_sitemap_specific_posts($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'][] = 1; // exclude post with ID = 1

$args['post__not_in'][] = 2; // exclude post with ID = 2

$args['post__not_in'][] = 3; // exclude post with ID = 3

$args['post__not_in'][] = 4; // exclude post with ID = 4

$args['post__not_in'][] = 5; // exclude post with ID = 5

return $args;

}

add_filter('wp_sitemaps_posts_query_args', 'shapeSpace_disable_sitemap_specific_posts', 10, 2);

这一切都非常简单,这要归功于WordPress核心开发人员,他们为我们提供了非常灵活的API,可以自定义。

根据元字段排除文章

也可以根据其附加的元数据排除特定的文章。例如,如果您的文章有一个名为sitemap的元字段。并且您只想包含sitemap值为1的文章。添加以下代码以使其实现:

// disable post based on meta field

function shapeSpace_disable_sitemap_post_meta($args, $post_type) {

if ('post' !== $post_type) return $args; // can be any post type

$args['meta_query'] = isset($args['meta_query']) ? $args['meta_query'] : array();

$args['meta_query'][] = array(

'key' => 'sitemap', // can be any meta key

'value' => '1', // can be any meta value

'compare' => '=', // can use any comparison

);

return $args;

}

add_filter('wp_sitemaps_posts_query_args', 'shapeSpace_disable_sitemap_post_meta');

对于这项技术,我们再次使用wp_sitemaps_posts_query_args过滤器挂钩。可以修改该技术以匹配几乎任何文章集。查看Meta API,以更好地了解可能发生的情况。

检查站点地图是否已启用

正如前面所述,在WordPress可以很容易地禁用/启用的站点地图功能。因此,如果您要自定义内容,了解站点上是否启用了WP Sitemaps可能会很有用。这是执行此操作的代码:#p#分页标题#e#

if (wp_sitemaps_get_server()->sitemaps_enabled()) {

// sitemaps enabled

} else {

// sitemaps not enabled

}

此代码使用wp_sitemaps_get_server()调用该sitemaps_enabled方法,该方法返回一个值,如果启用了站点地图则返回true,反之返回false。重要提示:所有此站点地图功能仅在WordPress 5.5及更高版本中可用。因此,如果您正在开发任何插件或主题,请确保对任何较旧的WP版本使用条件检查和适当的后备。

从robots.txt中排除站点地图规则

启用站点地图后,WordPress会自动将以下规则添加到您站点的虚拟动态生成的robots.txt文件中:

Sitemap: https://example.com/wp-sitemap.xml

该行告诉搜索引擎和漫游器在哪里可以找到您的站点地图,这是一件好事。但是,出于某些原因,您想要自定义漫游器站点地图规则,甚至完全禁用它。因此,如果您需要执行此操作,请使用以下代码从robots.txt排除站点地图规则:

// do not add sitemap rule to robots.txt

function shapeSpace_disable_sitemap_robots($wp_sitemaps) {

remove_filter('robots_txt', array($wp_sitemaps, 'add_robots'));

}

add_action('wp_sitemaps_init', 'shapeSpace_disable_sitemap_robots');

初始化Sitemaps对象时会触发wp_sitemaps_init钩子。注意:如果“发现”搜索引擎无法访问该网站,则未添加robots.txt站点地图规则(由WP常规设置“搜索引擎可见性”确定)。因此,启用该设置后,不需要上面的代码。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » WordPress站点地图的代码编写

admin 钻石

分享到:
上一篇
WordPress多天文章更新量的获取
下一篇
响应式精品大图宽屏商务会议网站模板

相关推荐

WordPress对仪表盘设置挂件

WordPress对仪表盘设置挂件

WordPress修改无用的自定义字段

WordPress修改无用的自定义字段

WordPress网站PHP文件的修改方法

WordPress网站PHP文件的修改方法

WordPress免邮箱验证的方法

WordPress免邮箱验证的方法

0条评论

发表评论 取消回复

要发表评论,您必须先登录。

提供最优质的资源集合

立即查看 了解详情
网站模板库

主题/付费下载/查看/余额管理/自定义积分,集成支付,卡密,推广奖励等。

本站导航
  • 链接标题
友情链接
  • 链接标题
快速搜索
本站由钛宇宙强力驱动
友情链接:
    商业源码网蜀ICP备2023005044号
    网站模板库
    • 登录
    • 注册
    网站模板库
    • 首页
    • web前端工具►
      • HTML/JS转换工具
      • JS/HTML格式化工具
      • 字母/英文大小写转换工具
      • robots.txt文件生成工具
      • Js压缩/格式化工具
      • Css在线压缩工具_代码格式化
    • 关于我们►
      • 免责声明
      • 联系我们
      • 广告服务
      • 服务项目
      • 关于我们
      • 网站轮播
      • 公告
      • 成都优优科技专用
      • 按行业分类
    • web学院►
      • 服务器教程
      • 学习资料►
        • 基础书籍
        • 交互书籍
        • 入门教程
        • 特效分类
      • 案例分享
      • web资讯
    • 网页特效►
      • 图片特效
      • 导航特效
      • 滑动按钮
      • 表单特效
      • 文字特效
      • 弹窗特效
      • 其他特效
    • 织梦模板►
      • 科技/电子/数码/通信
      • 文化/艺术/广告/传媒
      • 装修/设计/家居/家具
      • 基建/施工/地产/物业
      • 餐饮/酒店/旅游/票务
      • 食品/果蔬/饮料/日用
      • 服饰/珠宝/礼品/玩具
      • 摄影/婚庆/家政/生活
      • 运动/健身/体育/器材
      • 学校/教育/培训/科研
      • 美容/保健/医院/医疗
      • 金融/财税/咨询/法律
      • 政府/组织/集团/协会
      • 汽车/物流/交通/搬运
      • 机械/设备/制造/仪器
      • 化工/环保/能源/材料
      • 农业/畜牧/养殖/宠物
      • 其他模版
      • IT/软件/信息/互联网
    • 手机模板►
      • 手机APP模板
      • 微信小程序模板
      • wap
    • 网站模板►
      • joomla模板
      • Drupal模板
      • z-blog模板
      • EyouCms模板
      • Bootstrap模板
      • 帝国cms模板
      • CmsEasy模板
      • MetInfo模板
      • 购物商城模板►
        • Shopify主题
        • PrestaShop主题
      • 后台模板
      • 纯HTML模板
      • ecshop模板
      • phpwind模板
      • pbootcms模板
      • phpcms模板
      • wordpress模板
      • discuz模板
    • 教程►
      • 织梦教程
      • Discuz教程
      • WordPress教程
      • Phpcms教程
      • Phpwind教程
      • ECShop教程
      • Joomla教程
      • Drupal教程
      • zblog教程
      • EyouCMS教程
      • 帝国cms教程
      • MetInfo教程
      • CmsEasy教程

      弹窗标题

      这是一条网站公告,可在后台开启或关闭,可自定义背景颜色,标题,内容,用户首次打开关闭后不再重复弹出,此处可使用html标签...