首页 文章

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

提问于
浏览
1

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

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

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

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

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

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

2 回答

  • 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; ?>" />
    
  • 0

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

    像这样:

    $('#person').change(function(){
    	var gender = $(this).find('option:checked').attr('data-gender');
        $('#gender_hidden').val(gender);
        $('#gender').val(gender);
    });
    
    <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>
    

    为此使用生成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 }
    

相关问题