函数文档

signup_blog()

💡 云策文档标注

概述

signup_blog() 函数用于显示新站点注册表单,供用户或访客创建新站点。它处理表单参数,包括用户名、邮箱、站点名称和标题,并支持错误处理和过滤器钩子。

关键要点

  • 函数签名:signup_blog( $user_name = '', $user_email = '', $blogname = '', $blog_title = '', $errors = '' )
  • 参数:$user_name(用户名,字符串,必需)、$user_email(用户邮箱,字符串,必需)、$blogname(站点名称,字符串,必需)、$blog_title(站点标题,字符串,必需)、$errors(错误对象,WP_Error 或字符串,必需,默认为空字符串)
  • 内部处理:如果 $errors 不是 WP_Error 对象,则初始化为新的 WP_Error;使用数组存储默认值,并通过 signup_blog_init 过滤器进行过滤;如果 $blogname 为空,则默认使用 $user_name
  • 相关钩子:apply_filters( 'signup_blog_init', $signup_blog_defaults ) 用于过滤站点创建变量;do_action( 'signup_hidden_fields', $context ) 在输出隐藏表单字段时触发
  • 相关函数:与 show_blog_form()、validate_user_signup()、validate_blog_signup() 等配合使用,用于表单生成和验证
  • 版本历史:自 WordPress MU 3.0.0 版本引入

代码示例

function signup_blog( $user_name = '', $user_email = '', $blogname = '', $blog_title = '', $errors = '' ) {
    if ( ! is_wp_error( $errors ) ) {
        $errors = new WP_Error();
    }

    $signup_blog_defaults = array(
        'user_name'  => $user_name,
        'user_email' => $user_email,
        'blogname'   => $blogname,
        'blog_title' => $blog_title,
        'errors'     => $errors,
    );

    $filtered_results = apply_filters( 'signup_blog_init', $signup_blog_defaults );

    $user_name  = $filtered_results['user_name'];
    $user_email = $filtered_results['user_email'];
    $blogname   = $filtered_results['blogname'];
    $blog_title = $filtered_results['blog_title'];
    $errors     = $filtered_results['errors'];

    if ( empty( $blogname ) ) {
        $blogname = $user_name;
    }
}

📄 原文内容

Shows a form for a user or visitor to sign up for a new site.

Parameters

$user_namestringrequired
The username.
$user_emailstringrequired
The user’s email address.
$blognamestringrequired
The site name.
$blog_titlestringrequired
The site title.
$errorsWP_Error|stringrequired
A WP_Error object containing existing errors. Defaults to empty string.

Source

function signup_blog( $user_name = '', $user_email = '', $blogname = '', $blog_title = '', $errors = '' ) {
if ( ! is_wp_error( $errors ) ) {
$errors = new WP_Error();
}

$signup_blog_defaults = array(
'user_name' => $user_name,
'user_email' => $user_email,
'blogname' => $blogname,
'blog_title' => $blog_title,
'errors' => $errors,
);

/**
* Filters the default site creation variables for the site sign-up form.
*
* @since 3.0.0
*
* @param array $signup_blog_defaults {
* An array of default site creation variables.
*
* @type string $user_name The user username.
* @type string $user_email The user email address.
* @type string $blogname The blogname.
* @type string $blog_title The title of the site.
* @type WP_Error $errors A WP_Error object with possible errors relevant to new site creation variables.
* }
*/
$filtered_results = apply_filters( 'signup_blog_init', $signup_blog_defaults );

$user_name = $filtered_results['user_name'];
$user_email = $filtered_results['user_email'];
$blogname = $filtered_results['blogname'];
$blog_title = $filtered_results['blog_title'];
$errors = $filtered_results['errors'];

if ( empty( $blogname ) ) {
$blogname = $user_name;
}
?>
<form id="setupform" method="post" action="wp-signup.php">
<input type="hidden" name="stage" value="validate-blog-signup" />
<input type="hidden" name="user_name" value="<?php echo esc_attr( $user_name ); ?>" />
<input type="hidden" name="user_email" value="<?php echo esc_attr( $user_email ); ?>" />

<p class="submit"><input type="submit" name="submit" class="submit" value="<?php esc_attr_e( 'Sign up' ); ?>" /></p>
</form>
</pre><p class="wporg-dot-link-list"><a href="https://developer.wordpress.org/reference/files/wp-signup.php/">View all references</a> <a href="https://core.trac.wordpress.org/browser/tags/6.9.4/src/wp-signup.php#L735">View on Trac</a> <a href="https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-signup.php#L735-L787">View on GitHub</a></p></section>
<section class="wp-block-wporg-code-reference-hooks"><h2 id="hooks" class="is-toc-heading wp-block-heading has-heading-5-font-size" tabindex="-1" ><a href="#hooks">Hooks</a></h2> <dl><dt class="wp-block-wporg-code-reference-title has-normal-font-size"><a href="https://developer.wordpress.org/reference/hooks/signup_blog_init/"><span class="hook-func">apply_filters</span>( ‘signup_blog_init’, <nobr><span class="arg-type">array</span> <span class="arg-name">$signup_blog_defaults</span></nobr> )</a></dt><dd><p>Filters the default site creation variables for the site sign-up form.</p>
</dd><dt class="wp-block-wporg-code-reference-title has-normal-font-size"><a href="https://developer.wordpress.org/reference/hooks/signup_hidden_fields/"><span class="hook-func">do_action</span>( ‘signup_hidden_fields’, <nobr><span class="arg-type">string</span> <span class="arg-name">$context</span></nobr> )</a></dt><dd><p>Fires when hidden sign-up form fields output when creating another site or user.</p>
</dd></dl></section>
<section class="wp-block-wporg-code-reference-related" data-nosnippet="true"><h2 id="related" class="is-toc-heading wp-block-heading has-heading-5-font-size" tabindex="-1" ><a href="#related">Related</a></h2> <section style="margin-top:var(--wp--preset--spacing--20)" class="wp-block-wporg-code-table" id="uses"><figure class="wp-block-table "><table><thead><tr><th scope="col">Uses</th><th scope="col">Description</th></tr></thead><tbody><tr class=""><td><a href="https://developer.wordpress.org/reference/functions/show_blog_form/">show_blog_form()</a><code>wp-signup.php

Generates and displays the Sign-up and Create Site forms.

esc_attr_e()wp-includes/l10n.php

Displays translated text that has been escaped for safe use in an attribute.

esc_attr()wp-includes/formatting.php

Escaping for HTML attributes.

apply_filters()wp-includes/plugin.php

Calls the callback functions that have been added to a filter hook.

do_action()wp-includes/plugin.php

Calls the callback functions that have been added to an action hook.

is_wp_error()wp-includes/load.php

Checks whether the given variable is a WordPress Error.

WP_Error::__construct()wp-includes/class-wp-error.php

Initializes the error.

Show 5 moreShow less

Used by Description
validate_user_signup()wp-signup.php

Validates the new user sign-up.

validate_blog_signup()wp-signup.php

Validates new site signup.

Changelog

Version Description
MU (3.0.0) Introduced.