WP-Membersの登録フォームに表示される「*必須項目」の位置を変更する方法

WP-Membersの登録フォームに表示される「*必須項目」の位置を変更する方法

WP-Membersの登録フォームに表示される「*必須項目」の位置を変更する方法

会員制のサイトを作成する時に便利な「WP-Members」ですが、WP-Membersで作成した登録フォームには、「*必須項目」という注意書きが表示されます。

デフォルトでは、「*必須項目」はフォームの下(登録ボタンの下)に表示されます。ですが、表示位置を別の場所に移動したいというケースもあるかと思います。実際にフォームの上に表示位置を移動してほしいという要望をいただいたこともあります。

そんなわけで、今回は「*必須項目」の表示位置をフォームの上部に変更する方法を紹介したいと思います。

WP-Membersの登録フォームに表示される「*必須項目」の位置を変更する方法

適用しているテーマのfunctions.phpに以下を追記することで、「*必須項目」の表示位置を上部に移動できます。

function my_register_form_args( $args ) {
  $args = array(
    'req_label' => '',
    'heading_after' => '</legend>
    <div class="req-text"><span class="req">*</span>必須項目</div>',
  );
return $args;
}
add_filter('wpmem_register_form_args', 'my_register_form_args', 10, 1);

まず、「’req_label’ => ”」で必須項目の表示を消して、heading_afterに必須項目のHTMLを入れることで表示位置を変更しています。この場合、フォームタイトルのすぐ下に「*必須項目」が表示されます。

なお、heading_afterの部分を変えると、挿入位置も変わります。

$args = array(
  'heading_before' => 'heading_before<legend>',
  'heading_after' => '</legend>heading_after',
  'fieldset_before' => 'fieldset_before <fieldset>',
  'fieldset_after' => '</fieldset>fieldset_after',
  'main_div_before' => 'main_div_before<div id="wpmem_reg">',
  'main_div_after' => '</div>main_div_after',
  'txt_before' => 'txt_before',
  'txt_after' => 'txt_after',
  'row_before' => 'row_before',
  'row_after' => 'row_after',
  'buttons_before' => 'buttons_before<div class="button_div">',
  'buttons_after' => '</div>buttons_after',
);

挿入位置によっては、値に開始タグや閉じタグを入れる必要があります。今回は、フォームタイトルの下であるheading_afterに挿入したので、最初にlegendの閉じタグを入れています。

各種挿入される位置は以下の通りです。

heading_before フォームタイトルの前
heading_after フォームタイトルの後
fieldset_before fieldsetタグの前
fieldset_after fieldsetタグの後
main_div_before フォーム全体を包括しているdivタグの前
main_div_after フォーム全体を包括しているdivタグの後
txt_before フォーム全体の前
txt_after フォーム全体の後
row_before 各フォーム項目の前
row_after 各フォーム項目の後
buttons_before 登録ボタンの前
buttons_after 登録ボタンの後

あとがき

すごくニッチな話でしたが、「*必須項目」の表示位置を変更したい時は参考にしていただければと思います。

この記事が気に入ったら
いいね!してね♪

Twitter で

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です