概要
wp_sitemaps_get_serverフィルタは、XMLサイトマップ生成用のオブジェクトを取得するために使用されます。このフィルタを利用することで、デフォルトのサイトマップサーバーを拡張したり、カスタマイズしたりすることが可能です。主に、以下のような機能を実装する際によく使われます。
- カスタム投稿タイプのサイトマップを追加
- 特定のURLをサイトマップから除外
- サイトマップの優先度や更新頻度のカスタマイズ
- 特定の言語に基づくサイトマップの生成
- 特定のユーザーのための専用サイトマップの作成
- 外部データ源からのサイトマップ情報の統合
- 特定の条件に基づくサイトマップのフィルタリング
- サイトマップ生成プロセスのロギングやトラッキング
構文
add_filter( 'wp_sitemaps_get_server', 'your_callback_function' );
パラメータ
$server: 既存のサイトマップ生成用オブジェクト。
戻り値
- 更新されたサイトマップ生成用オブジェクト。
関連する関数
使用可能なバージョン
- このフィルタは、WordPress 5.5.0以降で使用可能です。
コアファイルのパス
wp-includes/sitemaps/class-wp-sitemaps.php
サンプルコード
以下は、wp_sitemaps_get_serverフィルタに関するサンプルコードです。
サンプルコード1: カスタム投稿タイプの追加
add_filter( 'wp_sitemaps_get_server', function( $server ) {
$server->register_post_type( 'custom_post_type' );
return $server;
});
このコードは、サイトマップにカスタム投稿タイプを追加します。これにより、custom_post_typeがサイトマップに含まれるようになります。
サンプルコード2: サイトマップから特定のページを除外
add_filter( 'wp_sitemaps_get_server', function( $server ) {
$server->remove_post_type( 'page' );
return $server;
});
このコードは、サイトマップからすべての固定ページを除外します。
サンプルコード3: サイトマップの優先度を設定
add_filter( 'wp_sitemaps_get_server', function( $server ) {
$server->set_post_priority( 'post', 0.8 );
return $server;
});
このコードは、投稿の優先度を0.8に設定します。
サンプルコード4: 特定の条件でのサイトマップ生成
add_filter( 'wp_sitemaps_get_server', function( $server ) {
if ( is_user_logged_in() ) {
$server->register_post_type( 'private_post_type' );
}
return $server;
});
このコードは、ユーザーがログインしている場合にのみ特定の投稿タイプをサイトマップに追加します。
サンプルコード5: サイトマップのロギング
add_filter( 'wp_sitemaps_get_server', function( $server ) {
error_log( 'サイトマップが生成されました。' );
return $server;
});
このコードは、サイトマップが生成されるたびにログを記録します。
この関数のアクションでの使用可能性
| アクション | 使用例 |
|---|---|
| mu_plugin_loaded | |
| registered_post_type | |
| plugins_loaded | |
| wp_roles_init | |
| setup_theme | |
| after_setup_theme | |
| set_current_user | |
| init | |
| register_sidebar | |
| wp_loaded | |
| send_headers | |
| parse_query | |
| pre_get_posts | |
| wp | |
| template_redirect | |
| get_header | |
| wp_head |
非推奨または削除されたバージョン
- 特に非推奨または削除されたバージョンはありません。