如何在wordpress中使用更新选择metabox?

时间:2017-11-30 08:13:35

标签: php wordpress

我在帖子类型中创建了元数据

<p>
 <label for="movies_notifications_meta_caption"><?php _e( 'last', 'movies_notifications_caption' ); ?></label><br>
 <select name="movies_notifications_meta_caption" id="movies_notifications_meta_caption" value="<?php echo get_post_meta($post->ID,'movies_notifications_meta_caption',true ); ?>">
 <option value="360p" <?php selected( $selected, '360p' ); ?>>360p</option>
 <option value="480p" <?php selected( $selected, '480p' ); ?>>480p</option>
 </select>
 </p>

这是我的更新代码:

if( isset( $_POST['movies_notifications_meta_caption'] ) )
 update_post_meta( $post_id, 'movies_notifications_meta_caption', 
esc_attr( $_POST['movies_notifications_meta_caption'] ) );

它运作良好,我可以从选择菜单中选择并显示我想要的位置。但是我们有一个问题,当我选择第二选择并更新帖子时,实际上它可以工作,在我的页面中它会改变。但是在我的 wordpress 信息中心和我的帖子类型编辑页面中,它始终是第一选择,如果我忘记更改它,并更新帖子,它也将在我的网站中更改。谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

我没有看到$ selected变量的定义代码。如果要添加它,它应该没有问题:

 <?php 
 $selected=get_post_meta($post->ID,'movies_notifications_meta_caption',true ); 
 ?>
 <p>
 <label for="movies_notifications_meta_caption"><?php _e( 'last', 'movies_notifications_caption' ); ?></label><br>
 <select name="movies_notifications_meta_caption" id="movies_notifications_meta_caption">
 <option value="360p" <?php selected( $selected, '360p' ); ?>>360p</option>
 <option value="480p" <?php selected( $selected, '480p' ); ?>>480p</option>
 </select>
 </p>