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

概要

get_sitemap_urlフィルタは、XMLサイトマップのURLを取得するために使用されるフィルターフックです。このフィルタは、テーマやプラグインがXMLサイトマップのURLをカスタマイズするためによく使われます。以下は、このフィルタがよく使われる機能の例です。

  1. 特定のURL構造を持つサイトマップへのリダイレクト
  2. サイトマップのURLを多言語対応にする
  3. サイトマップのURLを条件に応じて変更
  4. サイトマップを外部プロバイダーに渡すためのカスタマイズ
  5. ユーザーごとに異なるサイトマップを提供
  6. SEOプラグインとの統合のためのURL調整
  7. サイトマップをバージョン別に分ける
  8. クラックされたように見えたサイトマップURLを修正

構文

apply_filters( 'get_sitemap_url', $url );

パラメータ

  • $url: 現在のサイトマップのURL (文字列)。

戻り値

  • フィルタリングされたサイトマップのURL (文字列)。

関連する関数

https://refwp.com/?titleonly=1&s=get_sitemap_url

使用可能なバージョン

  • WordPress 5.5 以降

コアファイルのパス

/wp-includes/sitemap-functions.php

この関数のアクションでの使用可能性

アクション 使用例
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

サンプルコード

サンプルコード1: デフォルトのサイトマップURLを変更

add_filter( 'get_sitemap_url', 'custom_sitemap_url' );

function custom_sitemap_url( $url ) {
    return 'https://example.com/custom-sitemap.xml';
}

このサンプルは、サイトマップのURLをhttps://example.com/custom-sitemap.xmlに変更します。

サンプルコード2: サイトマップのURLに個別のクエリパラメータを追加

add_filter( 'get_sitemap_url', 'add_query_param_to_sitemap_url' );

function add_query_param_to_sitemap_url( $url ) {
    return $url . '?version=1.0';
}

このサンプルは、サイトマップのURLにversion=1.0というクエリパラメータを追加します。

サンプルコード3: 多言語サイト用のカスタマイズ

add_filter( 'get_sitemap_url', 'custom_multilingual_sitemap_url' );

function custom_multilingual_sitemap_url( $url ) {
    $lang = get_query_var('lang'); // 現在の言語を取得
    return 'https://example.com/' . $lang . '/sitemap.xml';
}

このサンプルは、現在の言語に応じたサイトマップのURLを生成します。

サンプルコード4: サイトマップのURLを外部サービスに転送

add_filter( 'get_sitemap_url', 'forward_sitemap_url' );

function forward_sitemap_url( $url ) {
    return 'https://external-provider.com/sitemap?url=' . urlencode($url);
}

このサンプルは、サイトマップのURLを外部サービスに転送するための形式で返します。

サンプルコード5: ウェブサイトのバージョンによってサイトマップを変更

add_filter( 'get_sitemap_url', 'version_based_sitemap' );

function version_based_sitemap( $url ) {
    if ( is_version('2.0') ) {
        return 'https://example.com/v2/sitemap.xml';
    }
    return $url;
}

このサンプルは、特定のバージョン条件に基づいて異なるサイトマップのURLを提供します。

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


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