wp_install_language_form()
云策文档标注
概述
wp_install_language_form() 函数用于在 WordPress 安装屏幕上输出语言选择表单。它基于提供的语言数组生成下拉选项,并优先处理本地语言包。
关键要点
- 函数输出一个 HTML select 表单,用于在安装过程中选择默认语言。
- 参数 $languages 是必需的数组,包含通过 Translation API 获取的可用语言数据。
- 函数会优先显示 $wp_local_package 指定的本地语言包选项(如果存在),并标记已安装的语言。
- 使用 esc_attr() 和 esc_html() 进行转义以确保安全性。
代码示例
function wp_install_language_form( $languages ) {
global $wp_local_package;
$installed_languages = get_available_languages();
echo "<select id='language' name='language'>n";
echo "<option value='' lang='en' data-installed='1'>English (United States)</option>n";
if ( ! empty( $wp_local_package ) && isset( $languages[ $wp_local_package ] ) ) {
if ( isset( $languages[ $wp_local_package ] ) ) {
$language = $languages[ $wp_local_package ];
printf(
'<option value="%s" lang="%s" data-continue="%s"%s>%s</option>' . "n",
esc_attr( $language['language'] ),
esc_attr( current( $language['iso'] ) ),
esc_attr( $language['strings']['continue'] ? $language['strings']['continue'] : 'Continue' ),
in_array( $language['language'], $installed_languages, true ) ? ' data-installed="1"' : '',
esc_html( $language['native_name'] )
);
unset( $languages[ $wp_local_package ] );
}
}
foreach ( $languages as $language ) {
printf(
'<option value="%s" lang="%s" data-continue="%s"%s>%s</option>' . "n",
esc_attr( $language['language'] ),
esc_attr( current( $language['iso'] ) ),
esc_attr( $language['strings']['continue'] ? $language['strings']['continue'] : 'Continue' ),
in_array( $language['language'], $installed_languages, true ) ? ' data-installed="1"' : '',
esc_html( $language['native_name'] )
);
}
echo "</select>n";
}
原文内容
Output the select form for the language selection on the installation screen.
Parameters
$languagesarray[]required-
Array of available languages (populated via the Translation API).
Source
function wp_install_language_form( $languages ) {
global $wp_local_package;
$installed_languages = get_available_languages();
echo "<label class='screen-reader-text' for='language'>Select a default language</label>n";
echo "<select size='14' name='language' id='language'>n";
echo '<option value="" lang="en" selected="selected" data-continue="Continue" data-installed="1">English (United States)</option>';
echo "n";
if ( ! empty( $wp_local_package ) && isset( $languages[ $wp_local_package ] ) ) {
if ( isset( $languages[ $wp_local_package ] ) ) {
$language = $languages[ $wp_local_package ];
printf(
'<option value="%s" lang="%s" data-continue="%s"%s>%s</option>' . "n",
esc_attr( $language['language'] ),
esc_attr( current( $language['iso'] ) ),
esc_attr( $language['strings']['continue'] ? $language['strings']['continue'] : 'Continue' ),
in_array( $language['language'], $installed_languages, true ) ? ' data-installed="1"' : '',
esc_html( $language['native_name'] )
);
unset( $languages[ $wp_local_package ] );
}
}
foreach ( $languages as $language ) {
printf(
'<option value="%s" lang="%s" data-continue="%s"%s>%s</option>' . "n",
esc_attr( $language['language'] ),
esc_attr( current( $language['iso'] ) ),
esc_attr( $language['strings']['continue'] ? $language['strings']['continue'] : 'Continue' ),
in_array( $language['language'], $installed_languages, true ) ? ' data-installed="1"' : '',
esc_html( $language['native_name'] )
);
}
echo "</select>n";
echo '<p class="step"><span class="spinner"></span><input id="language-continue" type="submit" class="button button-primary button-large" value="Continue" /></p>';
}
Changelog
| Version | Description |
|---|---|
| 4.0.0 | Introduced. |