为什么我的选择元数据没有保存?

时间:2013-04-25 作者:James O\'Neill

我目前正在一个网站上工作,我需要为自定义帖子类型保存几种不同类型的元数据。

目前,我有一个文本输入,正在保存,没有问题,但正在努力获得一个选择字段来执行相同的操作。

这是输出选择字段的功能:

function kwi_department_input() {
    // Define function to create meta box for team member department.

    global $post;
    echo \'<input type="hidden" name="teammeta_noncename" id="teammeta_noncename" value="\' . wp_create_nonce(plugin_basename(__FILE__)) . \'" />\';
    $department = get_post_meta($post->ID, \'_department\', true); ?>

    <select name="_department" id="_department">
        <option value="Directors" <?php selected($department, \'Directors\'); ?>>Directors</option>
        <option value="Finance / Admin" <?php selected($department, \'Finance / Admin\'); ?>>Finance / Admin</option>
        <option value="Customer Service Team" <?php selected($department, \'Customer Service Team\'); ?>>Customer Service Team</option>
        <option value="Commercial Team" <?php selected($department, \'Commercial Team\'); ?>>Commercial Team</option>
    </select>
<?php }
这是保存所有数据的函数:

function kwi_save_team_meta($post_id) {
    if( !wp_verify_nonce( $_POST[\'teammeta_noncename\'], plugin_basename(__FILE__) )) {
        return $post_id;
    }

    if( !current_user_can( \'edit_post\', $post_id ) ) {
        return $post_id;
    }

    $team_meta = array(
        \'_department\' => $_POST[\'_department\'], 
        \'_languages\' => $_POST[\'_languages\'] // Languages is the text input that is saving with no issue.
    );

    foreach($team_meta as $key => $value) {
        if(get_post_meta($post_id, $key, FALSE)) {
            update_post_meta($post_id, $key, $value);
        } else {
            add_post_meta($post_id, $key, $value);
        }
        if(!$value) {
            delete_post_meta($post_id, $key);
        }
    }
}
任何关于我做错了什么的指点都将不胜感激。

1 个回复
最合适的回答,由SO网友:James O\'Neill 整理而成

好的,我自己解决了这个问题。

原来我有name="_department" 属性在另一个与我的选择字段冲突的字段中重复。我的选择保存得很好,现在我已经编辑了它。

结束

相关推荐

删除Metabox中的值的选项

我正在制作一个元框,其中包含一个文本框,如果用户键入并保存数据,该文本框将显示元键的值。我需要的帮助是,用户如何删除以前的条目,以及在需要时编辑它们。我到处找了,什么也没找到。这是我必须显示的条目:<?php if ( get_post_meta($post->ID, \'brk_news_update\', true) ) : ?> <?php $mykey_values = get_post_custom_values(\'brk_news_updat