函数文档

signup_get_available_languages()

💡 云策文档标注

概述

signup_get_available_languages() 函数用于获取在站点或用户注册过程中可用的语言列表。它基于已安装的语言文件,并可通过过滤器进行自定义。

关键要点

  • 函数返回一个字符串数组,包含可用的语言代码,这些代码通过去除语言文件名中的 .mo 扩展名形成。
  • 使用 apply_filters('signup_get_available_languages', get_available_languages()) 来过滤可用语言列表,允许开发者通过钩子修改或禁用设置。
  • 函数会过滤掉未安装的语言,确保只返回实际可用的语言代码。
  • 相关函数包括 get_available_languages() 用于获取所有可用语言,以及 validate_another_blog_signup() 等用于注册验证。

代码示例

function signup_get_available_languages() {
    $languages = (array) apply_filters( 'signup_get_available_languages', get_available_languages() );
    return array_intersect_assoc( $languages, get_available_languages() );
}

注意事项

  • 如果向 signup_get_available_languages 过滤器传递空数组,将禁用注册表单中的语言设置,并使用默认语言创建站点。
  • 语言代码基于已安装的 .mo 文件,非安装语言会被自动过滤掉。
  • 此函数自 WordPress 4.4.0 版本引入。

📄 原文内容

Retrieves languages available during the site/user sign-up process.

Description

See also

Return

string[] Array of available language codes. Language codes are formed by stripping the .mo extension from the language file names.

Source

function signup_get_available_languages() {
	/**
	 * Filters the list of available languages for front-end site sign-ups.
	 *
	 * Passing an empty array to this hook will disable output of the setting on the
	 * sign-up form, and the default language will be used when creating the site.
	 *
	 * Languages not already installed will be stripped.
	 *
	 * @since 4.4.0
	 *
	 * @param string[] $languages Array of available language codes. Language codes are formed by
	 *                            stripping the .mo extension from the language file names.
	 */
	$languages = (array) apply_filters( 'signup_get_available_languages', get_available_languages() );

	/*
	 * Strip any non-installed languages and return.
	 *
	 * Re-call get_available_languages() here in case a language pack was installed
	 * in a callback hooked to the 'signup_get_available_languages' filter before this point.
	 */
	return array_intersect_assoc( $languages, get_available_languages() );
}

Hooks

apply_filters( ‘signup_get_available_languages’, string[] $languages )

Filters the list of available languages for front-end site sign-ups.

Changelog

Version Description
4.4.0 Introduced.