register_initial_settings()
云策文档标注
概述
register_initial_settings() 函数用于注册 WordPress 中的默认设置,这些设置主要服务于 REST API,并非涵盖所有可用设置。
关键要点
- 函数注册多个默认设置,包括站点标题、标语、URL、时区、日期格式等,分布在 general、writing、reading 和 discussion 设置组中。
- 注册时使用 register_setting() 函数,并指定参数如 show_in_rest、type、label、description 和 default,以支持 REST API 集成。
- 部分设置(如 siteurl 和 admin_email)仅在非多站点环境下注册,通过 is_multisite() 条件判断。
- 函数自 WordPress 4.7.0 引入,后续版本(如 6.0.1)添加了 show_on_front、page_on_front 和 page_for_posts 选项。
代码示例
function register_initial_settings() {
register_setting(
'general',
'blogname',
array(
'show_in_rest' => array(
'name' => 'title',
),
'type' => 'string',
'label' => __( 'Title' ),
'description' => __( 'Site title.' ),
)
);
// 更多 register_setting 调用...
}注意事项
- 此函数注册的设置主要用于 REST API,开发者应通过 REST API 或相关 WordPress 函数访问这些设置,而非直接操作数据库。
- 在多站点环境中,siteurl 和 admin_email 设置不会被注册,以避免冲突或重复配置。
- 开发者可参考相关函数如 register_setting()、__() 和 is_multisite() 来扩展或自定义设置注册逻辑。
原文内容
Registers default settings available in WordPress.
Description
The settings registered here are primarily useful for the REST API, so this does not encompass all settings available in WordPress.
Source
function register_initial_settings() {
register_setting(
'general',
'blogname',
array(
'show_in_rest' => array(
'name' => 'title',
),
'type' => 'string',
'label' => __( 'Title' ),
'description' => __( 'Site title.' ),
)
);
register_setting(
'general',
'blogdescription',
array(
'show_in_rest' => array(
'name' => 'description',
),
'type' => 'string',
'label' => __( 'Tagline' ),
'description' => __( 'Site tagline.' ),
)
);
if ( ! is_multisite() ) {
register_setting(
'general',
'siteurl',
array(
'show_in_rest' => array(
'name' => 'url',
'schema' => array(
'format' => 'uri',
),
),
'type' => 'string',
'description' => __( 'Site URL.' ),
)
);
}
if ( ! is_multisite() ) {
register_setting(
'general',
'admin_email',
array(
'show_in_rest' => array(
'name' => 'email',
'schema' => array(
'format' => 'email',
),
),
'type' => 'string',
'description' => __( 'This address is used for admin purposes, like new user notification.' ),
)
);
}
register_setting(
'general',
'timezone_string',
array(
'show_in_rest' => array(
'name' => 'timezone',
),
'type' => 'string',
'description' => __( 'A city in the same timezone as you.' ),
)
);
register_setting(
'general',
'date_format',
array(
'show_in_rest' => true,
'type' => 'string',
'description' => __( 'A date format for all date strings.' ),
)
);
register_setting(
'general',
'time_format',
array(
'show_in_rest' => true,
'type' => 'string',
'description' => __( 'A time format for all time strings.' ),
)
);
register_setting(
'general',
'start_of_week',
array(
'show_in_rest' => true,
'type' => 'integer',
'description' => __( 'A day number of the week that the week should start on.' ),
)
);
register_setting(
'general',
'WPLANG',
array(
'show_in_rest' => array(
'name' => 'language',
),
'type' => 'string',
'description' => __( 'WordPress locale code.' ),
'default' => 'en_US',
)
);
register_setting(
'writing',
'use_smilies',
array(
'show_in_rest' => true,
'type' => 'boolean',
'description' => __( 'Convert emoticons like :-) and :-P to graphics on display.' ),
'default' => true,
)
);
register_setting(
'writing',
'default_category',
array(
'show_in_rest' => true,
'type' => 'integer',
'description' => __( 'Default post category.' ),
)
);
register_setting(
'writing',
'default_post_format',
array(
'show_in_rest' => true,
'type' => 'string',
'description' => __( 'Default post format.' ),
)
);
register_setting(
'reading',
'posts_per_page',
array(
'show_in_rest' => true,
'type' => 'integer',
'label' => __( 'Maximum posts per page' ),
'description' => __( 'Blog pages show at most.' ),
'default' => 10,
)
);
register_setting(
'reading',
'show_on_front',
array(
'show_in_rest' => true,
'type' => 'string',
'label' => __( 'Show on front' ),
'description' => __( 'What to show on the front page' ),
)
);
register_setting(
'reading',
'page_on_front',
array(
'show_in_rest' => true,
'type' => 'integer',
'label' => __( 'Page on front' ),
'description' => __( 'The ID of the page that should be displayed on the front page' ),
)
);
register_setting(
'reading',
'page_for_posts',
array(
'show_in_rest' => true,
'type' => 'integer',
'description' => __( 'The ID of the page that should display the latest posts' ),
)
);
register_setting(
'discussion',
'default_ping_status',
array(
'show_in_rest' => array(
'schema' => array(
'enum' => array( 'open', 'closed' ),
),
),
'type' => 'string',
'description' => __( 'Allow link notifications from other blogs (pingbacks and trackbacks) on new articles.' ),
)
);
register_setting(
'discussion',
'default_comment_status',
array(
'show_in_rest' => array(
'schema' => array(
'enum' => array( 'open', 'closed' ),
),
),
'type' => 'string',
'label' => __( 'Allow comments on new posts' ),
'description' => __( 'Allow people to submit comments on new posts.' ),
)
);
}