第一个问题:这是一个好的做法吗
根据要保存的值的类型,将数组作为设置值绝对是一种好的做法。
如何对数组ex中的值执行此操作。get_option(\'header\')[\'header_logo\'][\'image\']
?如果您认为header
可能为空或未保存,您可以使用此-
get_option(
\'header\',
array(
\'header_logo\' => array(
\'image\' => \'.../default-image.png\',
\'width\' => \'200\',
\'height\' => \'60\'
)
)
)[\'header_logo\'][\'image\']
但是,如果选项
header
包含任何值(即使是空数组),则上述选项不会覆盖默认值。在这种情况下,您可以为
get_option
作用
function wpse_get_header_settings( $group = \'\', $key = \'\', $default = null ) {
$settings = get_option( \'header\' );
$defaults = array(
\'header_logo\' => array(
\'image\' => \'.../default-image.png\',
\'width\' => \'200\',
\'height\' => \'60\'
)
);
$settings = wp_parse_args( $settings, $defaults );
if ( ! empty( $group ) ) {
if ( ! array_key_exists( $group, $settings ) ) {
return $default;
}
$settings = $settings[ $group ];
if ( ! empty( $key ) ) {
return array_key_exists( $key, $settings ) ? $settings[ $key ] : $default;
}
}
return $settings;
}
然后,您可以安全地获得任何所需的值-
// would return the logo image
echo wpse_get_header_settings( \'header_logo\', \'image\' );
// would return the header text color
wpse_get_header_settings( \'header_color\' );
<在设置默认选项值时,哪种做法是最佳做法最好使用
after_theme_setup
对于主题和
register_activation_hook
对于插件。但是,如果使用包装器函数调用设置,则不应保存它。