WordPress 自带 XML 站点地图配置
使用 WordPress 以前需要使用插件( 如: google sitemap generator )来生成 XML 站点地图,现在可以不用了,WordPress 已经自带 XML 站点地图了,默认地址为:域名/wp-sitemap.xml 。
如果不想使用 WordPress 自带的 XML 站点地图,可以把以下代码添加到当前主题的 functions.php 中将其禁用。
add_filter( 'wp_sitemaps_enabled', '__return_false' );
如果想用,要把 XML 站点地图生成插件禁用或者删除( 否则访问 wp-sitemap.xml 会 404 ),而且可以根据个人需求选择以下部分代码添加到当前主题的 functions.php 中,对默认的 XML 站点地图进行一些设置。
网站地图增加 changefreq、priority 和 lastmod 标签信息
add_filter( 'wp_sitemaps_posts_entry', function( $entry, $post ) {
$entry['lastmod'] = $post->post_modified_gmt;
$entry['changefreq'] = 'Daily';
$entry['priority'] = '0.6';
return $entry;
}, 10, 2 );
排除 page 页面
add_filter(
'wp_sitemaps_post_types',
function( $post_types ) {
unset( $post_types['page'] );
return $post_types;
}
);
排除 category 页面
add_filter(
'wp_sitemaps_taxonomies',
function( $taxonomies ) {
unset( $taxonomies['category'] );
return $taxonomies;
}
);
排除 tag 页面
add_filter(
'wp_sitemaps_taxonomies',
function( $taxonomies ) {
unset( $taxonomies['post_tag'] );
return $taxonomies;
}
);
排除某个分类的文章
add_filter(
'wp_sitemaps_taxonomies_query_args',
function( $args ) {
$args['exclude'] = isset( $args['exclude'] ) ? $args['exclude'] : array();
$args['exclude'][] = 123; // 排除的分类 ID
return $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; // 排除的文章 ID
return $args;
}, 10, 2
);
排除某个用户链接
add_filter(
'wp_sitemaps_users_query_args',
function( $args ) {
$args['exclude'] = isset( $args['exclude'] ) ? $args['exclude'] : array();
$args['exclude'][] = 1; // 排除的用户 ID
return $args;
}
);
『 转载请注明来源及链接 』