【问题标题】:WP User Query & wp-admin/admin-ajax returns 0 with dataWP 用户查询和 wp-admin/admin-ajax 返回 0 和数据
【发布时间】:2021-05-09 16:10:50
【问题描述】:

我有一个奇怪的问题,我希望你们中的一个可以指导我找到答案。我是 PHP 和 JQuery 的新手,所以我不太确定是什么原因造成的,但本质上,我有一个 ajax 调用,用于自定义搜索字段。 “问题”是在每个搜索结果之后它都会在结果之后返回一个非常随机的“0”。因此,例如,如果我进行搜索,我会得到如下信息:

Stack Overflow 0

我尝试在代码中查看是什么导致了它,但我无法解决它,据我所知,它只是......随机出现在那里。我不介意它出现,如果我有办法对其应用 css 类以便隐藏它。无论如何,这是我的代码:


    $args = array(
        'role' => 'artist',
        'order' => 'ASC',
        'orderby' => 'display_name',
        'meta_query' => array(
           
        )
    );

    if (isset($_POST['artistFilter'])){
        $name = explode(" ",$_POST['artistFilter']);

        $args['meta_query'][] = array(
            'key' => 'first_name',
            'value' => $name[0],
            'compare' => 'LIKE'
        );
        $args['meta_query'][] = array(
            'key' => 'last_name',
            'value' => $name[1],
            'compare' => 'LIKE'
        );
    };

    if (isset($_POST['mediumType'])){
        // WP_User_Query arguments
        $args['meta_query'][] = array(
            'meta_key' => 'artist_medium',
           'value'=> esc_attr($_POST['mediumType']),
           'compare' => 'LIKE'
        );
    };


    if (isset($_POST['locationType'])){
        $args['meta_query'][] = array(
            'meta_key'=>'studio_region_location',
            'value' =>$_POST['locationType'],
            'compare' => 'LIKE'
        );
    };

    $user_query = new WP_USER_QUERY ($args);

    if (! empty($user_query->get_results())){
        foreach ($user_query->get_results() as $user){
            $artistimage = get_field('primary_image', 'user_' . $user->ID);
            echo '<div class="artistSearchColumn">';
            if ($artistimage){
                echo '<a href="/staging/author/' . esc_html($user->user_login) . '"><img src="' . esc_html($artistimage['url']) . '" alt="Test"/>';
                echo '<p>' . $user->first_name. ' ' . $user->last_name .'</p></a>';
            }
            else {
                 echo '<a href="/staging/author/' . esc_html($user->user_login) . '">' . esc_attr($user->first_name) . ' ' . esc_attr($user->last_name) . '</a>';
            }
            echo '</div>';
        }
    } else {
        echo '<h1>No Users Found.</h1>';
    }

我的 jquery:

<script>
jQuery(function($){
    var ajaxscript = {ajax_url: './staging/wp-admin/admin-ajax.php'}
    $('#filter').submit(function(){
        var filter = $('#filter');
        $.ajax({
            url:filter.attr('action'),
            data:filter.serialize(), // form data
            type:filter.attr('method'), // POST
            beforeSend:function(xhr){
                filter.find('button').text('Finding Artists...'); // changing the button label
            },
            success:function(data){
                alert(data);
                filter.find('button').text('Apply filter'); // changing the button label back
                $('#response').html(data); // insert data
            }
        });
        return false;
    });
});
    </script>

将 $('#response').html(data) 替换为除数据之外的任何内容都不会返回 0,所以我觉得这与此有关。

感谢您的帮助!!!

【问题讨论】:

  • “我会得到类似的东西:” - 这并不能告诉我们太多,因为这只是它被解释为 HTML 后的样子已经。请在浏览器开发工具(网络面板)中查看对您的请求的实际响应,并显示出来。
  • 嘿 CBroe,这是同一件事:``` Stack Overflow 0 ```
  • 但是您正在那里创建一个完整的 HTML 结构,&lt;div class="artistSearchColumn"&gt; 等。这很难只产生纯文本?
  • 确实如此,很奇怪。这是 jquery 返回的内容:```
    0 ``` 这很奇怪,哈哈。这是原始响应:```

    未找到艺术家。

    0 ```

标签: php jquery ajax wordpress


【解决方案1】:

我想通了,我必须手动杀死 PHP 函数。我简单加了

die();

到脚本的末尾,它不返回 0。耶! :)

 if (! empty($user_query->get_results())){
        foreach ($user_query->get_results() as $user){
            $artisttour = get_field('artist_tour_status', 'user_'.$user->ID);
            if ($user->artist_profile_display == 'Yes'):
                if ($artisttour != 'Not on Tour'):
                    $artistimage = get_field('primary_image', 'user_' . $user->ID);
                    echo '<div class="artistSearchColumn">';
                    if ($artistimage){
                        echo '<a href="/staging/author/' . esc_html($user->user_login) . '">';
                        echo '<div class="artistBGImage" style="background: url(' . esc_html($artistimage['url']) .');">';
                        echo '<img src="https://monadnockart.org/wp-content/plugins/foo/arttour25-2020icon-2.jpg" alt="'.esc_html($user->user_login).'s Artist Profile"/>';
                        echo '</div>';
                        echo '<p>' . $user->first_name. ' ' . $user->last_name .'</p>';
                        echo '</a>';
                    }
                    else {
                        echo '<a href="/staging/author/' . esc_html($user->user_login) . '"><p>' . esc_attr($user->first_name) . ' ' . esc_attr($user->last_name) . '</p></a>';
                    }
                    echo '</div>';
                else:
                    $artistimage = get_field('primary_image', 'user_' . $user->ID);
                        echo '<div class="artistSearchColumn">';
                        if ($artistimage){
                            echo '<a href="/staging/author/' . esc_html($user->user_login) . '">';
                            echo '<div class="artistBGImage" style="background: url(' . esc_html($artistimage['url']) .');">';
                            
                            echo '</div>';
                            echo '<p>' . $user->first_name. ' ' . $user->last_name .'</p>';
                            echo '</a>';
                        }
                        else {
                            echo '<a href="/staging/author/' . esc_html($user->user_login) . '"><p>' . esc_attr($user->first_name) . ' ' . esc_attr($user->last_name) . '</p></a>';
                        }
                        echo '</div>';
                    
                endif;
            else:
                echo '';
            endif;
            }
        }
    
    else {
    echo '<h2>No Artists Found.</h2>';
        }

        die();
}

【讨论】:

    猜你喜欢
    • 2015-12-01
    • 2023-04-09
    • 2020-01-13
    • 2016-05-14
    • 1970-01-01
    • 2021-08-13
    • 2013-02-18
    • 2012-05-31
    • 1970-01-01
    相关资源
    最近更新 更多