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

概要

sanitize_titleフィルタは、WordPressの投稿やページのタイトルから無効な文字を除外するために使用されます。このフィルタを利用することで、クリーンでSEOフレンドリーなスラッグを生成し、データベースに保存することができるようになります。そのため、特に以下のような機能を実装する際によく使われます。

  1. URLスラッグの生成
  2. 投稿やページの属性設定
  3. タクソノミーのスラッグ設定
  4. カスタムフィールドでのデータ整形
  5. テーマやプラグインのオプション保存
  6. REST APIのエンドポイントでのデータ管理
  7. ユーザーインターフェースのユーザビリティ改善
  8. SEO対策

構文

add_filter('sanitize_title', 'your_custom_function', 10, 2);

パラメータ

  • sanitize_title – フィルタ名
  • your_custom_function – フィルタを適用する任意の関数名
  • 10 – 優先順位(デフォルトは10)
  • 2 – 渡す引数の数(デフォルトは1)

戻り値

  • フィルタ処理されたタイトル(文字列)。

関連する関数

使用可能なバージョン

  • 初めて導入されたのは WordPress 2.1 です。

コアファイルのパス

  • wp-includes/post.php

サンプルコード

サンプル1: タイトルからスペースをハイフンに変換

これにより、投稿タイトルに含まれる空白をハイフンに変換します。

add_filter('sanitize_title', function($title) {
    return str_replace(' ', '-', $title);
});

このコードは、タイトルからスペースをハイフンに置き換え、よりURLフレンドリーな形式にします。

サンプル2: 小文字に変換

タイトルを小文字に変換します。

add_filter('sanitize_title', function($title) {
    return strtolower($title);
});

このコードは、タイトルを小文字にすることで、URLの一貫性を保ちます。

サンプル3: 特定の禁止文字の除去

特定の禁止文字をタイトルから除去します。

add_filter('sanitize_title', function($title) {
    return preg_replace('/[^a-z0-9-]/', '', $title);
});

このコードは、英小文字、数字、ハイフン以外の文字をタイトルから削除します。

サンプル4: 許可されていない文字に置き換え

タイトルから無効な文字を特定の文字に置き換えます。

add_filter('sanitize_title', function($title) {
    return str_replace(['@'], '-', $title);
});

このコードは、タイトル内の「@」をハイフンに置き換えます。

サンプル5: セクションタイトルの接頭辞追加

接頭辞を付けてセクションタイトルを整形します。

add_filter('sanitize_title', function($title) {
    return 'section-' . $title;
});

このコードは、すべてのタイトルに「section-」という接頭辞を付けます。

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

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

非推奨のバージョン

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

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


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