概要
sanitize_title
フィルタは、WordPressの投稿やページのタイトルから無効な文字を除外するために使用されます。このフィルタを利用することで、クリーンでSEOフレンドリーなスラッグを生成し、データベースに保存することができるようになります。そのため、特に以下のような機能を実装する際によく使われます。
- URLスラッグの生成
- 投稿やページの属性設定
- タクソノミーのスラッグ設定
- カスタムフィールドでのデータ整形
- テーマやプラグインのオプション保存
- REST APIのエンドポイントでのデータ管理
- ユーザーインターフェースのユーザビリティ改善
- 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 | 〇 |
非推奨のバージョン
- 特に非推奨または削除されたバージョンはありません。