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

时间:2015-09-01 08:36:03

标签: php wordpress custom-fields

我创建了this类别档案,其中包含一个包含100个帖子的表格。该表包含3个自定义字段(性别,大陆,扇区),还有第四个('总体'唯一值'所有')不在表格及其值内每个帖子都在每个条目/帖子的表格单元格内。 我已经在表格上方放置了四个选择标签(四个下拉菜单),我想根据选择的某个选择标签的哪个选项来过滤帖子。更具体地说,当用户选择例如选择标签'大陆'和选项'欧洲'我想查询所有带有自定义字段值的帖子' Europe'。是否可以通过使用if语句来实现这一点,以及我将如何语法化?选择标签如下:

对于自定义字段整体

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

对于自定义字段性别

<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>

对于自定义字段扇区

<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>

1 个答案:

答案 0 :(得分:0)

尝试使用此元素按元键和值

查询帖子
<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);

?>