在AJAX搜索WordPress中包括自定义字段

时间:2018-01-31 作者:teninchhero

我有一个自定义帖子类型的搜索表单。用户应该能够按商店名称和商店所在城市进行搜索。商店名称与帖子标题相同,因此我设法找出了这一部分。另一方面,城市是一个高级自定义字段,我不知道如何将其包含在搜索查询中。因此,当用户开始键入时,是否与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\',
        )
    )
) );

1 个回复
SO网友:Maxim Sarandi

您可以包括meta_query WP\\u查询中的参数。

\'meta_query\' => array(
    \'relation\' => \'OR\',
    array(
        \'key\' => \'country\',
        \'value\' => \'value\',
        \'compare\' => \'LIKE\',
    ),
    array(
        \'key\' => \'city\',
        \'value\' => \'value\',
        \'compare\' => \'LIKE\',
    ),
),

结束

相关推荐

JQuery&AJAX在WordPress中获取数据到php

我在wordpress中创建了一个自定义表,用于管理每个用户的词汇表列表。此列表在浏览器中显示为表格。我添加了一个按钮,以便用户可以从列表中删除词汇。为此,我使用jquery脚本。我检索用户id和所选词汇表的id,通过ajax将其传递给我的函数。此函数必须删除存储在数据库中的数据。在我看来,我的变量被很好地传递到函数中,但它不起作用。谁能解释一下我的错误是什么吗?以及如何检查变量是否传递良好。这里是我在“词汇表.js”中的代码 jQuery(\'#button\').click( function

在AJAX搜索WordPress中包括自定义字段 - 小码农CODE - 行之有效找到问题解决它

在AJAX搜索WordPress中包括自定义字段

时间:2018-01-31 作者:teninchhero

我有一个自定义帖子类型的搜索表单。用户应该能够按商店名称和商店所在城市进行搜索。商店名称与帖子标题相同,因此我设法找出了这一部分。另一方面,城市是一个高级自定义字段,我不知道如何将其包含在搜索查询中。因此,当用户开始键入时,是否与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\',
        )
    )
) );

1 个回复
SO网友:Maxim Sarandi

您可以包括meta_query WP\\u查询中的参数。

\'meta_query\' => array(
    \'relation\' => \'OR\',
    array(
        \'key\' => \'country\',
        \'value\' => \'value\',
        \'compare\' => \'LIKE\',
    ),
    array(
        \'key\' => \'city\',
        \'value\' => \'value\',
        \'compare\' => \'LIKE\',
    ),
),

相关推荐

WordPress AJAX错误400向远程站点发送数据的错误请求

我正在使用发件人。net获取电子邮件订阅列表。这个网站给了我一些信息,可以将用户的电子邮件添加到订阅列表中。我想使用WordPress ajax来实现这一点。但它返回错误400错误请求。我的代码是:文件ajax新闻脚本。js公司: jQuery(document).ready(function($){ // Perform AJAX send news on form submit $(\'form#fnews\').on(\'submit\', funct