我正在尝试在 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!";
}
}