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