wpmuのサインアップフォームをカスタマイズする準備

wordpressのマルチサイトにおけるブログ登録フォームのカスタマイズ

wp-signup.phpを複製

wordpressのマルチサイト構成のサインアッププロセスは、

  • ユーザー情報の入力
  • ブログ情報の入力

という順序でフォームが進行する。この部分のフォームのフロント側とバックエンドに流すデータの扱いをカスタマイズする場合には、wp-signup.phpを複製し、そのコピーしたファイルをwp_signup_locationフィルターでカスタマイズしたサインアップフォームへリダイレクトすると作業をしやすくなる。

wp_signup_location filter

wp-signup.php

wp-signup-new.php

というファイル名で複製し、フィルターフックを以下のように設定する。

add_filter( 'wp_signup_location', array($this, 'new_signup_page' ));

独自関数new_signup_pageは以下のとおり、

function new_signup_page() {
	$page = 'http://'.DOMAIN_CURRENT_SITE.'/wp-signup-new.php';
	return $page;
}

DOMAIN_CURRENT_SITEは、wordpressのマルチサイトをインストールする際に、wp-config.phpに追記するように促される定数で、ルートドメイン名が設定されている。

この設定をすることで、

test.com/wp-login.php?action=register

へのアクセスは、

test.com/wp-signup-new.php

へリダイレクトされるようになり、wp-signup.phpの場合と同じようにユーザーセットアッププロセスが進行する。そして、

wpmu_signup_stylesheet

をカスタムすることでフロント側のcssを変更することができる。また、フォームの要素を追加して新しいデータを入力可能な状態にして、新規の値をフィルターフックでデータベースに追加することも可能になる。add_signup_metaでブログの補足情報を登録する方法では、サインアップ時に補足データをdbに格納し、その後のアクティベーション時にデータを有効化する方法をエントリーした。

wordpressのユーザー登録フォームをカスタマイズするなら知っておきたいノウハウである。

Webエンジニアブログにコメント

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

wpmuのサインアップフォームをカスタマイズする準備の記事にコメントを投稿

カスタマイズ