Get value from meta box

时间:2017-03-16 作者:user2994259

我正在尝试编写一个插件,将元框中的值添加到save\\u post上的帖子中。但我不知道如何从元框中的表单字段中获取值这是相关代码:

function sw_add_document_meta_boxes() {
    if (get_current_screen()->id == \'dokument\') {
        add_meta_box(\'access_level\', \'Tilgangsnivå\', \'sw_ac_meta_box\');
    }
}

function sw_ac_meta_box() {
    $html = \'<p class="description">\';
    $html .= \'Velg laveste tilgangsnivå\';
    $html .= \'</p>\';
    $html .= \'<select name="access_level" id="access_level">\';
    $html .= \'<option value="4">Ansatt</option>\';
    $html .= \'<option value="3">Fagansvarlig</option>\';
    $html .= \'<option value="2">Daglig leder</option>\';
    $html .= \'<option value="1">Superbruker</option>\';
    $html .= \'</select>\';
    echo $html;
}

function sw_ac_set_access_level($id) {
    $meta_value = 
    add_post_meta($id, \'access_level\', $meta_value, true);
}

add_action(\'add_meta_boxes\', \'sw_add_document_meta_boxes\');
add_action(\'save_post\', \'sw_ac_set_access_level\');
我想我的问题是,我应该在“sw\\u ac\\u set\\u access\\u level()”函数的“$meta\\u value=”行上写什么?考虑到我是一个彻头彻尾的wordpress noob,所以我可能完全走错了方向。

3 个回复
SO网友:hcheung

If表格<select> 是要提交的表单元素的一部分,则应检查$_POST[\'access_level\'].

SO网友:Aftab

应该是这样的。

function sw_ac_set_access_level($id) {
    $meta_value = $_POST["access_level"]; // name of select
    update_post_meta($id, \'access_level\', $meta_value );
}
你可以在这里了解更多细节https://codex.wordpress.org/Plugin_API/Action_Reference/save_post

SO网友:Harry

您应该首先验证$\\u POST[\'access\\u level\']以保存其值

你可以试试这个

function sw_ac_set_access_level($id) {
  if(isset($_POST[\'access_level\']) && !empty($_POST[\'access_level\'])){
    update_post_meta($id, \'access_level\', $_POST[\'access_level\'] );
  }   
}

相关推荐

保存Metabox内容无效

我正在尝试保存一个metabox输入,但它似乎不起作用。我使用的是数组(因为我需要我的metabox有60行),所以我假设问题就出在数组中。这是我为管理员提供的metabox函数(它可以正确显示我要显示的信息):function mock_metabox() { global $post; // Nonce field wp_nonce_field( basename( __FILE__ ), \'mock_fields\' ); // in