所以我试图在我的自定义帖子类型中保存下拉值。我做错了什么?
标记:
<li><label>Location</label><input name="tf_events_location" value="<?php echo $meta_loc; ?>" /></li>
<li><label>Band relation</label>
<select name="tf_events_relate" id="tf_events_relate">
<option value="">All Artists </option>
<option value="146">Mormor</option>
<option value="140">John Face</option>
</select>
</li>
并保存
function save_tf_events(){
global $post;
if(!isset($_POST["tf_events_location"])):
return $post;
endif;
$updateloc = $_POST["tf_events_location"];
update_post_meta($post->ID, "tf_events_location", $updateloc);
if(!isset($_POST["tf_events_relate"])):
return $post;
endif;
$updaterelate = $_POST["tf_events_relate"];
update_post_meta($post->ID, "tf_events_relate", $updaterelate);
}
我的tf_events_location
保存得很好,但我的tf_events_relate
没有做任何事情
我想我可能会把原则弄错;)
答案 0 :(得分:1)
问题是,您只是不告诉<select>
元素在页面返回时选择了<option>
。
有很多不同的方法可以做到这一点,有些方法比其他方式更灵活,但是使用上面的html代码,这是最简单的格式,这样可行:
<li><label>Location</label><input name="tf_events_location" value="<?php echo $meta_loc; ?>" /></li>
<li><label>Band relation</label>
<select name="tf_events_relate" id="tf_events_relate">
<option <?php ($meta_relate == "") ? echo("selected "):; ?>value="">All Artists </option>
<option <?php ($meta_relate == "146") ? echo("selected "):; ?>value="146">Mormor</option>
<option <?php ($meta_relate == "140") ? echo("selected "):; ?>value="140">John Face</option>
</select>
</li>
它不是最优雅的,但应该有效。
答案 1 :(得分:0)
cdeszaq的回答将完成工作,但您可以使用selected()
<li><label>Location</label>
<input name="tf_events_location" value="<?php echo $meta_loc; ?>" />
</li>
<li><label>Band relation</label>
<select name="tf_events_relate" id="tf_events_relate">
<option value="" <?php selected( $meta_relate, '' ); ?>All Artists</option>
<option value="146" <?php selected( $meta_relate, '146' ); ?>Mormor</option>
<option value="140" <?php selected( $meta_relate, '140' ); ?>John Face</option>
</select>
</li>