confirm_another_blog_signup()
は、新たに作成されたサイト(ブログ)が正しくサインアップされたことをユーザーに知らせるメッセージを表示します。
関数は、サイトのドメイン、パス、タイトル、ユーザー情報(ユーザー名、メールアドレスなど)およびオプションのメタデータを受け取り、ユーザーにサイトURLやログインURLへのリンクを含むメッセージを出力します。
マルチサイト環境において、サインアップ成功時のフィードバックとして利用されるため、ユーザーが新規サイトの情報を確認し、ログインしやすくする役割を担います。
基本構文
基本的な構文は以下の通りです。必要なパラメータを指定して呼び出すことで、サイト作成完了の確認画面を出力します。
<?php
confirm_another_blog_signup(
$domain, // サイトのドメイン
$path, // サイトのルートパス
$blog_title, // サイトのタイトル
$user_name, // ユーザー名
$user_email, // (オプション)ユーザーのメールアドレス
$meta, // (オプション)追加のサインアップメタ情報
$blog_id // サイトID(マルチサイトの場合に必要)
);
?>
サイトID($blog_id
)が指定されている場合、そのブログコンテキストに切り替えてホームURLやログインURLを取得し、出力メッセージ内にリンクを表示します。
サイトIDが指定されていない場合は、引数として渡されたドメインとパスから直接 URL を生成します。
HTML の出力部分で、サイトタイトルにリンクを持たせるとともに、ログイン用 URL とユーザー名を含むテキストを表示します。
最後に do_action( 'signup_finished' )
が呼ばれ、必要に応じた追加の処理(フック経由のカスタマイズ)が実行されます。
引き数と戻り値
引き数 | 型 | 説明 |
---|---|---|
$domain | string , 必須 | サイトのドメインURL(例:example.com )。 |
$path | string , 必須 | サイトのルートパス(例:/ または /blog/ )。 |
$blog_title | string , 必須 | 作成するサイトのタイトル。 |
$user_name | string , 必須 | サイト作成者のユーザー名。 |
$user_email | string ,オプション | サイト作成者の電子メールアドレス。指定がない場合は空文字列がデフォルトです。 |
$meta | array , オプション | validate_blog_signup() 内の add_signup_meta フィルターにより追加された任意のメタデータ。デフォルトは空の配列。 |
$blog_id | int , 必須 | サイトID。マルチサイトの場合は、新規サイトのIDが設定されます。 |
戻り値 | 型 | 説明 |
---|---|---|
なし | – | この関数は直接出力を行う(echo )ため、戻り値はありません。表示するメッセージとして HTML がレンダリングされます。 |
使用例
サイト作成完了メッセージの表示例
<?php
$domain = 'example.com';
$path = '/blog/';
$blog_title = 'My New Blog';
$user_name = 'john_doe';
$user_email = 'john@example.com';
$meta = array( 'foo' => 'bar' );
$blog_id = 42;
confirm_another_blog_signup(
$domain,
$path,
$blog_title,
$user_name,
$user_email,
$meta,
$blog_id
);
?>
この例では、ブログ ID 42 に新しく作成されたサイトに対して、指定されたドメイン、パス、サイトタイトル、ユーザー情報を元に、サイトが正しく作成されたことを知らせるメッセージが出力されます。内部で一時的にブログコンテキストが切り替えられ、ホームURLとログインURLが動的に生成されるため、正確なリンク付きの確認メッセージが表示されます 。
注意点
ブログコンテキストの切り替え
マルチサイトの場合は、$blog_id
が正しく指定されていることが重要です。指定がない場合や誤ったIDの場合、意図しないURLが生成される可能性があります。
出力のカスタマイズ
内部でフィルターフック(signup_finished
)が利用されているため、テーマやプラグインで出力メッセージが上書き・拡張されることがある点に留意してください。
HTML と翻訳
出力内で __()
や printf()
が利用されているため、ローカライズ対応している場合は翻訳ファイルの整備が必要です。
良く一緒に使われる関数
switch_to_blog()
if ( $blog_id ) {
switch_to_blog( $blog_id ); // ホームURLやログインURLの取得処理…
restore_current_blog();
}
指定されたサイトに一時的に切り替えるために使用します。これにより、各ブログ固有の URL やオプションを正確に取得できるようになります.
home_url()
$home_url = home_url( '/' );
現在のサイトのホームURLを取得します。confirm_another_blog_signup()
内でサイトリンクを生成する際に使われます.
wp_login_url()
$login_url = wp_login_url();
現在のサイトのログインURLを取得し、ユーザーが新規サイトにログインするためのリンクとして利用します。
想定されるトラブル
ブログIDの不一致による URL 誤生成
$blog_id
が正しく指定されていない場合、switch_to_blog()
の切り替えが行われず、誤ったホームURLやログインURLが出力される可能性があります。
解決方法
サインアップ処理前に、対象となるブログIDが正しいかどうかを確認するロジックを導入し、エラー時は適切な代替処理やエラーメッセージを出すようにしてください。
カスタムフィルターによる出力の上書き
他のプラグインやテーマが signup_finished
アクションにフックしている場合、出力内容が変更される可能性があります。
解決方法
カスタムサイトでは、利用中のフィルターやアクションの内容を事前に確認し、必要に応じて優先度の調整や条件分岐を追加してください.
Q&A
まとめ
confirm_another_blog_signup()
は、WordPress マルチサイト環境における新規サイト作成時の確認メッセージを出力するための便利な関数です。
サイトのドメイン、ルートパス、サイトタイトル、ユーザー情報など必要なパラメータを受け取り、ユーザーに対して正確なサイト情報とログインURLを提示します。
各種関数(switch_to_blog()
, home_url()
, wp_login_url()
)との連携により、動的なサイト情報を生成できる点やカスタムフィルターによる拡張性の高さが大きな魅力です。
コメント