使用自定义字段的下拉菜单查询帖子


Query posts using dropdown menu of custom fields

我已经创建了这个包含100个帖子的类别存档表。该表包含3个自定义字段(性别,大陆,部门),还有第四个字段("整体",唯一的值"所有")不在表内,每个帖子的值都在每个条目/帖子的表单元格内。我已经在表上放置了四个选择标签(四个下拉菜单),我想根据选择某个选择标签的哪个选项来过滤帖子。更具体地说,当用户选择例如选择标签"大陆"和选项"欧洲",我会查询所有的自定义字段值"欧洲"的帖子。是否有可能通过使用if语句来做到这一点,我该如何准确地语法它?选择标签如下:

自定义字段Overall

<select>
<option value="all">All</option>
</select> 

自定义字段Gender

<select>
<option value="gender">Select Gender</option>
<option value="male" >Male</option>
<option value="female">Female</option>
</select>

自定义字段Continent

<select>                    
<option value="continent">Select Continent</option>
<option value="europe">Europe</option>
<option value="america">America</option>
<option value="africa">Africa</option>
<option value="asia">Asia</option></select>

自定义字段Sector

<select> 
<option value="sector">Select Sector</option>
<option value="retail">FMCG/Retail</option>
<option value="various">Various</option>
<option value="finance">Finance</option>
<option value="se">SE</option>
<option value="energy">Energy</option>
<option value="education">Education</option>
<option value="fb">F&B</option>
<option value="environment">Environment </option>
<option value="telco">Tech/telco </option>
<option value="fashion">Fashion </option>
<option value="media">Media </option>
<option value="construction">Construction </option>
<option value="health">Health </option>
<option value="tech">Tech </option>
<option value="industry">Industry </option>
</select>

按元键和值查询post

<form name="res" action="" method="post">
<select name="gender">
<option value="gender">Select Gender</option>
<option value="male" >Male</option>
<option value="female">Female</option>
</select>
<input type="submit" name="submit" value="submit">
</form>
<?php
if (!empty($_POST['submit'])) :
$result = query_posts( array(
    'post_type' => 'your post type name',
    'meta_query' => array(
        array(
            'key' => 'gender',
            'value' => 'male',          
        ),
        array(
            'key' => 'continent',
            'value' => 'USA',
        ),
        array(
            'key' => 'all',
            'value' => 'all',
        )
    )
) );
print_r($result);
?>