我有一个表单,在wordpress中作为插件创建。在表单中有一个下拉选择菜单,其中填充了名为“歌手”的自定义帖子类型中的所有条目。
即。 “歌手1,歌手2,歌手3”
在这个自定义帖子类型中,每个歌手都有元框信息,我感兴趣的信息是'singer_gender'。选择歌手时,我想将变量传递到该表单上的隐藏字段中,使用“男性”或“女性”
因此,例如,如果选择了Singer 1,并且是男性,我的表单将具有以下隐藏字段:
<input type="hidden" name="singer_gender" id="singer_gender" value="<?php echo singer_gender; ?>" />
有没有办法让这种情况发生?
答案 0 :(得分:0)
您可以使用get_post_meta
来检索在元框中输入的值。
如果singer_gender
是元框键,则代码可能如下所示:
<?php
global $post;
$single_gender = get_post_meta($post->ID, 'singer_gender', true);
?>
<input type="hidden" name="singer_gender" id="singer_gender" value="<?php echo $singer_gender; ?>" />
答案 1 :(得分:0)
您可以将性别存储在选择选项的数据值中。
像这样:
$('#person').change(function(){
var gender = $(this).find('option:checked').attr('data-gender');
$('#gender_hidden').val(gender);
$('#gender').val(gender);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
<input type="hidden" id="gender_hidden" />
<input type="text" id="gender" />
<select id="person" onchange="change(this);">
<option value="Person_1" data-gender="male">Person 1</option>
<option value="Person_2" data-gender="female">Person 2</option>
<option value="Person_3" data-gender="male">Person 3</option>
</select>
</form>
&#13;
为该用途生成HTML get_post_meta
<?php
$args = array('post_type'=>'people');
$people = WP_Query($args);
if ($people->have_posts()) ?>
<input id="gender" name="gender" />
<select name="person">
<?php while ($people->have_posts()){ $people->the_post();
global $post;
$name = get_the_title();
$slug = $post->post_name;
$gender = get_post_meta($post->ID, 'gender', true);
?>
<option data-gender="<?php echo $gender; ?>" value="<?php echo $slug; ?>"><?php echo $name; ?></option>
<?php } ?>
</select>
<?php }