为了避免每次添加一个post meta值(并减少主题中的重复代码),我编写了一个简单的类来存储所有选项,以便进行迭代。该类工作正常,构建了一个可以添加有效选项的对象(格式与向Customizer屏幕添加控件的格式大致相同),并在元框中输出选项表单,但值不会保存。下面是我如何保存选项的,后面有一些注释。如果您有任何想法或需要更多信息,请告诉我:
add_action( \'save_post\', \'save_theme_options\' );
function save_theme_options( $post_id ) {
global $theme_options;
foreach ( $theme_options->options as $option ) {
if ( array_key_exists( $option->id, $_POST ) ) {
update_post_meta($post_id, $option->meta_key, $_POST[$option->id]);
}
}
}
$theme\\u options是全局变量,我在其中实例化我的对象。
$options中每个选项的$id需要一个程序友好的字符串,例如“example\\u option”。(与WP对象中的数字不同,它不是数字。)
因此,设置一个选项,如:
$theme_options->add_theme_option( \'example_text\', array(
\'title\' => \'Substrate Text Example\',
\'description\' => \'Example Description\',
\'label\' => \'Text:\',
\'type\' => \'text\',
\'default\' => \'Some text\'
));
我希望$id是“example\\u text”,而$meta\\u key是“example\\u text”。
如果您需要更多信息,请告诉我,谢谢。(此处为第一篇帖子。)