所以,我花了几个小时寻找最简单的解决方案来保存我的meta for,但没有找到任何可以帮助我的……我正在尝试保存这些元变量(我将第一个放在下面的示例中,其他的几乎都是重复的),而我使用的保存方法根本不做任何事情。你能告诉我我哪里做错了吗?保存方法来自我的一个同事开发的另一个插件,但我似乎无法让它工作……
add_action('admin_init','page_spec_meta');
function page_spec_meta()
{
$post_id = $_GET['post'] ? $_GET['post'] : $_POST['post_ID'] ; $template_file = get_post_meta($post_id,'_wp_page_template',TRUE);
if ($template_file == 'index.php')
{
add_meta_box("career-meta", "Career", "career_meta", "page", "normal", "high");
add_meta_box("business-meta", "Business", "business_meta", "page", "normal", "high");
add_meta_box("fabulous-meta", "Fabulous", "fabulous_meta", "page", "normal", "high");
add_meta_box("network-meta", "Network", "network_meta", "page", "normal", "high");
add_meta_box("future-meta", "Future", "future_meta", "page", "normal", "high");
}
}
// --- METABOX: CAREER ... CONTENTS --- //
function career_meta(){
global $post;
$career = get_post_meta( $post->ID, 'career', true );
?>
<label for="career subtitle">Subtitle</label><input type="text" class="widefat" id="career-subtitle" name="career subtitle" value="<?php echo $career; ?>" />
<label for="career text 1">Left Column</label><textarea class="widefat" id="career-text-1" name="career text 1" value="<?php echo $career; ?>"></textarea>
<label for="career text 2">Right Column</label><textarea class="widefat" id="career-text-2" name="career text 2" value="<?php echo $career; ?>"></textarea>
<?php }
// --- METABOX: CAREER ... SAVE --- //
add_action('save_post', 'save_career');
function save_career(){
global $post;
update_post_meta($post->ID, "career", $_POST["career"]);
}
add_action('save_post','function_save_var');
function function_save_var()
{
if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE )
return $post_id;
}工作方式: Metaboxes显示在我指定的页面上,并且可以编辑不起作用的内容:保存...
发布于 2012-10-24 19:08:06
访问$_POST数组时需要使用input (或textarea)字段的name属性。您的name是"career subtitle“、"career text 1”和"career text 2",因此您需要使用$_POST["career subtitle"]、$_POST["career text 1"]或$_POST["career text 2"]来访问传递的值。
我不确定您是否会遇到浏览器转义空格和PHP需要取消转义它们才能在$_POST中找到它们的问题-我可能会将名称中的空格替换为下划线,例如
<label for="career_subtitle">Subtitle</label><input type="text" class="widefat" id="career-subtitle" name="career_subtitle" value="<?php echo $career; ?>" />然后在save_career中
update_post_meta($post->ID, "career", $_POST["career_subtitle"]);或者,如果需要单独存储这三个值:
update_post_meta($post->ID, "career_subtitle", $_POST["career_subtitle"]);并在检索该值时在career_meta中进行相应的更改。
https://stackoverflow.com/questions/13046837
复制相似问题