WordPress標準のサイトマップをカスタマイズする方法
作成日:
2020年9月28日
WordPress 5.5から標準でサイトマップXMLファイルを出力出来るようになり、別途プラグインをインストールする必要がなくなりました。せっかくなので出力されるサイトマップxmlファイルをカスタマイズしてみようと思います。
さぁ、
いってみよう。
投稿のカスタマイズ
優先度は更新日が今現在から1週間以内の投稿のみ「1.0」として、それ以外は「0.5」にしてみます。SEO効果があるかは不明ですが。
PHP
function add_sitemaps_posts_entry( $entry, $post ) {
// 更新日の追加.
$date = $post->post_modified;
$entry['lastmod'] = $date;
// 投稿後1週間の投稿のみpriorityを1.0に.
if ( strtotime( $date ) > strtotime( '-7 day' ) ) {
$entry['priority'] = '1.0';
} else {
$entry['priority'] = '0.5';
}
return $entry;
}
add_filter( 'wp_sitemaps_posts_entry', 'add_sitemaps_posts_entry', 10, 2 );
投稿の除外
PHP
function exclude_sitemaps_posts_query_args( $args, $post_type ) {
// 特定の投稿IDを指定して除く
$args['post__not_in'] = array( 1, 2, 3 );
// パスワード保護を除く
$args['has_password'] = false;
return $args;
};
add_filter( 'wp_sitemaps_posts_query_args', 'exclude_sitemaps_posts_query_args', 10, 2 );
投稿タイプの除外
PHP
function remove_post_type_from_wp_sitemap( $post_types ) {
unset( $post_types[ 'page' ] );
return $post_types;
}
add_filter( 'wp_sitemaps_post_types', 'remove_post_type_from_wp_sitemap', 10, 2 );
タクソノミーの除外
PHP
function remove_tax_from_sitemap( $taxonomies ) {
unset( $taxonomies['post_format'] );
return $taxonomies;
}
add_filter( 'wp_sitemaps_taxonomies', 'remove_tax_from_sitemap', 10, 2 );
投稿者の除外
PHP
function remove_user_sitemap_provider( $provider, $name ) {
if ( 'users' === $name ) {
return false;
}
return $provider;
}
add_filter( 'wp_sitemaps_add_provider', 'remove_user_sitemap_provider', 10, 2 );
物草 灸太郎
WordPressでホームページを制作しつつ、休日は畑を耕したりDIYを楽しんでいます。
関連投稿
Loading...
コメントをどうぞ