我有一个自定义帖子类型的搜索表单。用户应该能够按商店名称和商店所在城市进行搜索。商店名称与帖子标题相同,因此我设法找出了这一部分。另一方面,城市是一个高级自定义字段,我不知道如何将其包含在搜索查询中。因此,当用户开始键入时,是否与1匹配。职位标题和/或2。高级自定义字段“城市”?
这是我的密码functions.php
add_action( \'wp_footer\', \'ajax_fetch\' );
function ajax_fetch() { ?>
<script type="text/javascript">
function fetch(){
jQuery.ajax({
url: \'<?php echo admin_url(\'admin-ajax.php\'); ?>\',
type: \'post\',
data: { action: \'data_fetch\', keyword: jQuery(\'#keyword\').val() },
success: function(data) {
jQuery(\'#datafetch\').html( data );
}
});
}
</script>
<?php
}
// the ajax function
add_action(\'wp_ajax_data_fetch\' , \'data_fetch\');
add_action(\'wp_ajax_nopriv_data_fetch\',\'data_fetch\');
function data_fetch(){
if ( esc_attr( $_POST[\'keyword\'] ) == null ) { die(); }
$the_query = new WP_Query( array( \'posts_per_page\' => -1, \'s\' => esc_attr( $_POST[\'keyword\'] ), \'post_type\' => \'aterforsaljare\' ) );
if( $the_query->have_posts() ) :
while( $the_query->have_posts() ): $the_query->the_post(); ?>
<h2><a href="<?php echo esc_url( post_permalink() ); ?>"><?php the_title();?></a></h2>
<?php endwhile;
wp_reset_postdata();
endif;
die();
}
html就这么简单:
<input type="text" name="keyword" id="keyword" onkeyup="fetch()"></input>
<div id="datafetch">Search results will appear here</div>
只要用户搜索商店的标题,此代码就可以工作。如何将自定义字段作为参数包含到
WP_query
?
我发现this 举个例子,我试过了,但只是说了一个错误cf_search_join
找不到。同时也没有真正理解代码。。。这是更正确的方法吗?或者我可以从我已经拥有的东西中构建一些东西吗?
**已更新的查询**
$the_query = new WP_Query( array(
\'posts_per_page\' => -1,
\'s\' => esc_attr( $_POST[\'keyword\'] ),
\'post_type\' => \'aterforsaljare\',
\'meta_query\' => array(
\'relation\' => \'OR\',
array(
\'key\' => \'vendor_city\',
\'value\' => \'value\',
\'compare\' => \'LIKE\',
)
)
) );