ワードプレスのwp_sitemaps_get_serverフィルタの使用方法・解説

概要

wp_sitemaps_get_serverフィルタは、XMLサイトマップ生成用のオブジェクトを取得するために使用されます。このフィルタを利用することで、デフォルトのサイトマップサーバーを拡張したり、カスタマイズしたりすることが可能です。主に、以下のような機能を実装する際によく使われます。

  1. カスタム投稿タイプのサイトマップを追加
  2. 特定のURLをサイトマップから除外
  3. サイトマップの優先度や更新頻度のカスタマイズ
  4. 特定の言語に基づくサイトマップの生成
  5. 特定のユーザーのための専用サイトマップの作成
  6. 外部データ源からのサイトマップ情報の統合
  7. 特定の条件に基づくサイトマップのフィルタリング
  8. サイトマップ生成プロセスのロギングやトラッキング

構文

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

非推奨または削除されたバージョン

  • 特に非推奨または削除されたバージョンはありません。

この関数について質問する


上の計算式の答えを入力してください