我只是一个基本的Wordpress用户。我需要使用多个条件输入(多个条件)创建搜索框,以在各种自定义字段中搜索。
例如,包括以下自定义字段:
颜色: _ ___
尺寸: __ _ _
价格: _ __
条件: __ _
折扣%: _ __
点击次数: __ _
用户可以输入 1个或更多个文件
结果也应该过滤多个输入。
那么,我如何在Query中处理这个多个条件?
每个输入确定。
但是,问题多于1
我混淆了如何为多个条件编写查询 (以前的方式)。
请一个简单的样本。
答案 0 :(得分:2)
以下是您的示例查询,只是为了让您了解如何编写查询。
$query = "SELECT * FROM `wp_pelleresuser` WHERE `status`=1";
if(isset($profile) && !empty($profile))
{
$length_profile = explode(',',$profile);
for($i=0;$i<count($length_profile);$i++)
{
$query.= " AND FIND_IN_SET('".$length_profile[$i]."',profile_type)";
}
}
if(isset($name) && !empty($name))
{
$query.= " AND `first_name` LIKE '".$name."'";
}
if(isset($city) && !empty($city))
{
$query.= " AND `city_trainer` LIKE '".$city."' OR `city_studio` LIKE '".$city."' OR `city_reseller` LIKE '".$city."'";
}
if(isset($state) && !empty($state))
{
$query.= " AND `state_trainer` LIKE '".$state."' OR `state_studio` LIKE '".$state."' OR `state_reseller` LIKE '".$state."'";
}
if(isset($postal) && !empty($postal))
{
$query.= " AND `postal_trainer` LIKE '".$postal."' OR `postal_studio` LIKE '".$postal."' OR `postal_reseller` LIKE '".$postal."'";
}
答案 1 :(得分:1)
如果您想自定义搜索页面并允许搜索自定义字段,则可以轻松实现此目的。在下面的示例中,我们使用了2个自定义字段。该示例用于业务目录。每个企业都有自己的贸易定制领域,以及其所在地。默认的wordpress搜索没有附加表单字段,但您可以按照此操作为您使用自定义字段的WordPress网站创建自定义搜索。
您需要做的第一件事是将其他字段添加到表单中。
我们要做的是为每个值添加两个表单字段。就我而言,我正在跟踪贸易和城市。
因此,您可以在创建表单字段时访问此link。
创建表单字段并命名后,转到search.php文件并将新值捕获到变量$ _GET ['your field name'];
$trade = $_GET['trade'];
$city = $_GET['city'];
然后,您可以将这些值传递给查询,其中key =自定义字段名称和值=变量 -
$args = array(
'meta_query' => array(
'relation' => 'AND',
array(
'key' => business_trade,
'value' => $trade,
),
array(
'key' => business_city,
'value' => $city,
)
)
);
以下完整代码。
<?php
$trade = $_GET['trade'];
$city = $_GET['city'];
if ($trade && $city) {
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
'meta_query' => array(
'relation' => 'AND',
array(
'key' => business_trade,
'value' => $trade,
),
array(
'key' => business_city,
'value' => $city,
)
)
);
query_posts($args);
} else {
query_posts('posts_per_page=4');
}
if ($trade && $city) { ?>
<h3>Your Search For <?php echo $trade; ?> and <?php echo $city; ?></h3>
<?php } else { ?>
<h3>Title</h3>
<?php } if(have_posts()) : ?>
<?php while(have_posts()) : the_post()
?>
<p class="no_percentage"><?php echo excerpt(15); ?> </p>
<span class="readmore" ><a href="<?php the_permalink(); ?>" > <?php _e('read more');?> </a> </span>
<?php endwhile; ?>
<?php else: ?>
<p class="notice_msg"><?php _e( 'Sorry, but nothing matched your search criteria.'); ?></p>
<?php endif; ?>