1

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

元框功能。位于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!";
    }
}
4

1 回答 1

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());
于 2012-06-15T07:08:09.983 回答