您好,我需要为我创建的页脚和页眉帖子类型在页面中创建元数据库,在这段代码中,我尝试了这一点,但我无法保存所选项目并在前端检索id所选项目。
function wpdocs_register_meta_boxes() {
add_meta_box( \'meta-box-id\', __( \'header\', \'textdomain\' ),\'wpdocs_my_display_callback\', \'page\', \'normal\' , \'high\');
}
add_action( \'add_meta_boxes\', \'wpdocs_register_meta_boxes\' );
function wpdocs_my_display_callback() {
?>
<select name="count" id="selectId" >
<?php
$posts = new WP_Query(array(\'posts_per_page\' => -1, \'post_type\' => \'header\'));
while($posts->have_posts()) : $posts->the_post(); ?>
<option id="selection" value="<?php echo get_the_ID(); ?>"><?php echo get_the_title(); ?></option>
<?php endwhile;
die()
?>
</select>
<?php
}
function wpdocs_save_meta_box( $post_id ) {
if (isset($_POST[\'selectId\'])) {
update_post_meta( $post_id, \'selectId\', $_POST[\'selectId\']);
}
}
add_action( \'save_post\', \'wpdocs_save_meta_box\' );
SO网友:Prappo
您的代码几乎没有问题
首先,
选择字段的名称与您试图使用全局变量保存的名称不同$_POST
. 你在存钱$_POST[\'selectId\']
数据,但它不存在于元框中。您将选择字段命名为;“计数”;但是尝试使用"selectId"
键
第二,
您需要获取保存的值,并使用它与要选择的选择字段值进行比较
你的wpdocs_my_display_callback
函数将如下所示来设置所选值
function wpdocs_my_display_callback()
{
global $post;
$saved_value = get_post_meta($post->ID, \'selectId\', true);
?>
<select name="selectId" id="selectId">
<?php
$posts = new WP_Query(array(\'posts_per_page\' => -1, \'post_type\' => \'header\'));
while ($posts->have_posts()) : $posts->the_post(); ?>
<option <?php selected($saved_value, get_the_ID()); ?> id="selection" value="<?php echo get_the_ID(); ?>"><?php echo get_the_title(); ?></option>
<?php endwhile;
// die()
?>
</select>
<?php
}
我想现在可以了。