概要
get_the_password_form
フィルタは、パスワード保護されている投稿のパスワード入力フォームを取得する際に使用されます。このフィルタを通じて、デフォルトのパスワードフォームのHTMLをカスタマイズすることができます。このフィルタは、特に以下のような用途でよく使われます。
- フォームのデザインを変更する
- カスタムメッセージを追加する
- 他のフィールドや要素を追加する
- スタイルシートやスクリプトの統合
- セキュリティの強化(例:CAPTCHAの追加)
- ビジュアルエディタでのサポート
- 多言語対応のカスタマイズ
- CSSクラスやIDの追加
構文
add_filter('get_the_password_form', 'your_custom_password_form_function');
パラメータ
$form
: デフォルトのパスワード入力フォームのHTML。
戻り値
- カスタマイズされたパスワード入力フォームのHTML。
関連する関数
https://refwp.com/?titleonly=1&s=get_the_password_form
使用可能なバージョン
- WordPress 2.8以降で使用可能。
コアファイルのパス
wp-includes/post-template.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: カスタムパスワードフォーム
function custom_password_form($form) {
$form = str_replace('class="post-password-form"', 'class="custom-password-form"', $form);
return $form;
}
add_filter('get_the_password_form', 'custom_password_form');
このコードは、デフォルトのパスワードフォームのクラス名をcustom-password-form
に変更します。
サンプルコード2: カスタムメッセージの追加
function add_custom_message_to_password_form($form) {
$form .= '<p>この投稿はパスワードで保護されています。入力してください。</p>';
return $form;
}
add_filter('get_the_password_form', 'add_custom_message_to_password_form');
このコードは、パスワードフォームの下部にカスタムメッセージを追加します。
サンプルコード3: フォームのスタイルを追加
function style_password_form($form) {
$form = '<div class="password-form-container">' . $form . '</div>';
return $form;
}
add_filter('get_the_password_form', 'style_password_form');
このコードは、パスワードフォーム全体を囲むdiv
タグを追加し、スタイルを適用できるようにします。
サンプルコード4: CAPTCHA機能の追加
function add_captcha_to_password_form($form) {
$form .= '<p><input type="text" name="captcha" placeholder="CAPTCHAを入力してください"></p>';
return $form;
}
add_filter('get_the_password_form', 'add_captcha_to_password_form');
このコードは、パスワードフォームにCAPTCHAフィールドを追加します。
サンプルコード5: 多言語サポート
function multilingual_password_form($form) {
$lang = get_option('site_language');
if ($lang == 'ja') {
$form = '<p>この投稿はパスワードで保護されています。</p>' . $form;
}
return $form;
}
add_filter('get_the_password_form', 'multilingual_password_form');
このコードは、日本語のサイトでのみ、パスワードフォームの上に日本語のメッセージを表示します。