如何使用wordpress元框中的复选框值?

时间:2012-06-15 06:03:23

标签: php wordpress

我正在尝试在wordpress中使用自定义元框。我目前的目标是创建一个带有复选框的元框,我可以将其用作开关以打开某些内容。一直在搜索网络,试图拼凑一些有效的东西,到目前为止,我已经足够远,我可以生成一个带复选框的元框,但是检查的值并没有转移到循环中原因。当我尝试输出数组以查看是否可以从中获取任何内容时,它是空的。我已经看了很多东西,并尝试了几个元框创建脚本,但我无法让它们中的任何一个工作。这种方法看起来最有希望,但现在我被卡住了。有什么重要的东西我在这里不见了吗?好像没有保存数据。代码包括以下内容:

Meta Box功能。位于functions.php:

// Checkbox Meta
add_action("admin_init", "checkbox_init");

function checkbox_init(){
add_meta_box("checkbox", "Checkbox", "checkbox", "post", "normal", "high");
}

function checkbox(){
global $post;
$custom = get_post_custom($post->ID);
$field_id = $custom["field_id"][0];

echo '<label>Check for yes</label>';
$field_id_value = get_post_meta($post->ID, 'field_id', true);
if($field_id_value == "yes") {
    $field_id_checked = 'checked="checked"';
}
echo ' <input type="checkbox" name="field_id" value="yes" '.$field_id_checked.' />';
}

// Save Meta Details
add_action('save_post', 'save_details');

function save_details(){
  global $post;

  if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
     return $post->ID;
  }

update_post_meta($post->ID, "field_id", $_POST["field_id"]);
}

选中复选框时用于输出内容的代码。它也位于functions.php中。该函数在循环中使用。

function custom_content() {
    if(isset($_POST['field_id']) && $_POST['field_id'] == 'yes') {
        echo "It works!";
    }
}

1 个答案:

答案 0 :(得分:2)

将functions.php上的函数更改为

function custom_content($id) {
    $field_id = get_post_meta($id, 'field_id', true);

    if($field_id == yes) {
        echo "It works!";
    }
    else{
        echo 'Not working...';
    }
}

和你的模板一样,在循环中调用它就像ff:

custom_content(get_the_ID());