Wordpress获取所选自定义帖子类型的元数据信息

时间:2015-11-30 16:13:02

标签: php wordpress forms

我有一个表单,在wordpress中作为插件创建。在表单中有一个下拉选择菜单,其中填充了名为“歌手”的自定义帖子类型中的所有条目。

即。 “歌手1,歌手2,歌手3”

在这个自定义帖子类型中,每个歌手都有元框信息,我感兴趣的信息是'singer_gender'。选择歌手时,我想将变量传递到该表单上的隐藏字段中,使用“男性”或“女性”

因此,例如,如果选择了Singer 1,并且是男性,我的表单将具有以下隐藏字段:

<input type="hidden" name="singer_gender" id="singer_gender" value="<?php echo singer_gender; ?>" />

有没有办法让这种情况发生?

2 个答案:

答案 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)

您可以将性别存储在选择选项的数据值中。

像这样:

&#13;
&#13;
$('#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;
&#13;
&#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 }