我有以下问题。我正在尝试用wordpress创建一个房地产网站。我创建了一个自定义帖子类型,我在高级自定义字段中包含以下字段:列表类型(选择:出售,出租),物业类型(选择:公寓,住宅),价格(数量),城市(字段类型:选择)
我有以下查询来获取值:
<?php
$args = array(
'post_type' => 'properties',
'posts_per_page' => 10,
'posts_per_page' => -1,
'meta_query' => array(
array(
'key' => 'property_type',
'value' => 'Apartment',
),
),
);
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
?>
<?php
$property_type = get_field('property_type');
$property_price = get_field('price');
$property_location = get_field('location');
$property_description = get_field('description');
?>
<div class="propert_list">
<h1><?php the_title(); ?></h1>
<div class="property_type">
Location - <strong><?php echo $property_type; ?></strong>
</div>
<div class="property_price">
Price - <strong><?php echo $property_price; ?></strong>
</div>
<div class="property_location">
Location - <strong><?php echo $property_location['address']; ?></strong>
</div>
<div class="property_description">
Property Description - <strong><?php echo $property_description; ?></strong>
</div>
</div>
<br /><hr />
<?php endwhile; ?>
我可以在何处以及如何创建我的搜索表单,按'property_type'和'location'过滤属性。
答案 0 :(得分:1)
一种解决方案是安装Search & Filter。 它允许您根据给定的帖子类型,元字段等过滤搜索,并且非常强大。缺点是您可能需要支付Pro版本。
另一种解决方案是将隐藏的输入字段添加到PHP搜索表单中。例如:
<input type="hidden" name="post_type[]" value="properties" />
仅搜索属性,并对过滤元值执行相同操作。这很容易实现,但不太灵活,我更喜欢将视图和逻辑分开。
第三种解决方案是使用pre_get_posts
过滤器。然后你可以写例如。
if ( $post_types ) $query->set( 'post_type', 'properties' );
...等等,在此过滤器内。有很多例子可以告诉你如何做到这一点。只需在Google上搜索过滤器名称: - )
答案 1 :(得分:0)
如果您希望在同一页面模板下进行搜索,可以使用可搜索的HTML数据表和JavaScript来实现。只需将您的值封装在表中即可。您可以参考这些链接,例如代码:
http://www.vijayjoshi.org/2011/01/03/searching-text-in-a-html-table-using-jquery/
和
https://www.datatables.net/examples/data_sources/js_array.html
我还注意到你忘了重置wp查询。以wp_reset_query()
;
希望你这有帮助。
答案 2 :(得分:0)