简体   繁体   English

即使没有结果返回,查询计数也将返回1

[英]Query count returns as 1 even though there's no results returning

I' am working with WordPress. 我正在使用WordPress。 When I do a normal query everything works great, but when I want to test if theirs no results it should show up something like 当我执行普通查询时,一切正常,但是当我想测试其无结果时,它应该显示如下内容

"Sorry, but nothing matched your search criteria. Please try again with some different keywords."

This was looking strange to me because even though the query doesn't have any results it still showing as $count 1 whereas it should showup as $count 0. Here is the Code in placed. 这对我来说很奇怪,因为即使查询没有任何结果,它仍然显示为$ count 1,而应该显示为$ count0。这是放置的代码。

URL Variables URL变量

    $get_search = trim($get_search);
    $get_from = trim($get_from);
    $get_to = trim($get_to);
    $get_districts = trim($get_districts);
    $get_string = trim($get_string);

        if($get_search == "Submit"){

        }
}
?>

This is actually code 这实际上是代码

<?php
// Get districts from database plugin
    $districts = get_district();
    $options="";
        foreach($districts[0]['choices'] as $key => $val){
            if($key == $get_districts){
                $options .= "<option value='".$key."' selected>".$val."</option>";
            } else {
                $options .= "<option value='".$key."'>".$val."</option>";
            }
        }
?>
    <form method="get" action="<?php echo site_url();?>/planned-outages/" enctype="multipart/form-data">
        From Date : <input type="text" name="from" class="from" value="<?php echo $get_from; ?>"/>
        To Date : <input type="text" name="to" class="to" value="<?php echo $get_to; ?>"/>
        District: <select name="districts"><?php echo $options; ?></select>
        Search for : <input type="text" name="string" value="<?php echo $get_string; ?>"/>
        <input name="search" type="submit"/>
    </form>
<?php                   
    global $post;
    $args = array(
        'order' => 'DESC',
        'orderby' => 'post_date',
        'post_status' => 'publish',
        'post_type' => 'outages',
        's' => $get_string,
            'meta_query' => array(
                'relation' => 'OR',
                   array(
                       'key' => 'district',
                       'value' => $get_districts,
                       'compare' => 'LIKE'
                   ),
                   array(
                       'key' => 'from_date_time',
                       'value' => $get_from,
                       'compare' => 'LIKE'
                   ),
                   array(
                       'key' => 'to_date_time',
                       'value' => $get_to,
                       'compare' => 'LIKE'
                   )
            )
    );
?>  
<?php
    $list_of_posts = new WP_Query($args);
    $count = count($list_of_posts);

    if($count > 0){
        while ($list_of_posts->have_posts()):$list_of_posts->the_post();
        $meta = get_post_meta( get_the_ID(), '');
    ?>
        <?php the_title(); ?>
        <?php the_content(); ?>
    <?php
        endwhile; 
    } else {
    ?>
        Sorry, but nothing matched your search criteria. Please try again with some different keywords.
    <?php
    }
    ?>

When I var_dump($list_of_posts) $list_of_posts this is what I get 当我var_dump($ list_of_posts)$ list_of_posts这就是我得到的

object(WP_Query)#443 (46) { ["query"]=> array(6) { ["order"]=> string(4) "DESC" ["orderby"]=> string(9) "post_date" ["post_status"]=> string(7) "publish" ["post_type"]=> string(7) "outages" ["s"]=> string(5) "links" ["meta_query"]=> array(4) { ["relation"]=> string(2) "OR" [0]=> array(3) { ["key"]=> string(8) "district" ["value"]=> string(8) "rakiraki" ["compare"]=> string(4) "LIKE" } [1]=> array(3) { ["key"]=> string(14) "from_date_time" ["value"]=> string(10) "12/26/2013" ["compare"]=> string(4) "LIKE" } [2]=> array(3) { ["key"]=> string(12) "to_date_time" ["value"]=> string(0) "" ["compare"]=> string(4) "LIKE" } } } ["query_vars"]=> array(67) { ["order"]=> string(4) "DESC" ["orderby"]=> string(9) "post_date" ["post_status"]=> string(7) "publish" ["post_type"]=> string(7) "outages" ["s"]=> string(5) "links" ["meta_query"]=> array(4) { ["relation"]=> string(2) "OR" [0]=> array(3) { ["key"]=> string(8) "district" ["value"]=> string(8) "rakiraki" ["compare"]=> string(4) "LIKE" } [1]=> array(3) { ["key"]=> string(14) "from_date_time" ["value"]=> string(10) "12/26/2013" ["compare"]=> string(4) "LIKE" } [2]=> array(3) { ["key"]=> string(12) "to_date_time" ["value"]=> string(0) "" ["compare"]=> string(4) "LIKE" } } ["error"]=> string(0) "" ["m"]=> string(0) "" ["p"]=> int(0) ["post_parent"]=> string(0) "" ["subpost"]=> string(0) "" ["subpost_id"]=> string(0) "" ["attachment"]=> string(0) "" ["attachment_id"]=> int(0) ["name"]=> string(0) "" ["static"]=> string(0) "" ["pagename"]=> string(0) "" ["page_id"]=> int(0) ["second"]=> string(0) "" ["minute"]=> string(0) "" ["hour"]=> string(0) "" ["day"]=> int(0) ["monthnum"]=> int(0) ["year"]=> int(0) ["w"]=> int(0) ["category_name"]=> string(0) "" ["tag"]=> string(0) "" ["cat"]=> string(0) "" ["tag_id"]=> string(0) "" ["author"]=> string(0) "" ["author_name"]=> string(0) "" ["feed"]=> string(0) "" ["tb"]=> string(0) "" ["paged"]=> int(0) ["comments_popup"]=> string(0) "" ["meta_key"]=> string(0) "" ["meta_value"]=> string(0) "" ["preview"]=> string(0) "" ["sentence"]=> string(0) "" ["fields"]=> string(0) "" ["menu_order"]=> string(0) "" ["category__in"]=> array(0) { } ["category__not_in"]=> array(0) { } ["category__and"]=> array(0) { } ["post__in"]=> array(0) { } ["post__not_in"]=> array(0) { } ["tag__in"]=> array(0) { } ["tag__not_in"]=> array(0) { } ["tag__and"]=> array(0) { } ["tag_slug__in"]=> array(0) { } ["tag_slug__and"]=> array(0) { } ["post_parent__in"]=> array(0) { } ["post_parent__not_in"]=> array(0) { } ["author__in"]=> array(0) { } ["author__not_in"]=> array(0) { } ["ignore_sticky_posts"]=> bool(false) ["suppress_filters"]=> bool(false) ["cache_results"]=> bool(true) ["update_post_term_cache"]=> bool(true) ["update_post_meta_cache"]=> bool(true) ["posts_per_page"]=> int(10) ["nopaging"]=> bool(false) ["comments_per_page"]=> string(2) "50" ["no_found_rows"]=> bool(false) ["search_terms_count"]=> int(1) ["search_terms"]=> array(1) { [0]=> string(5) "links" } ["search_orderby_title"]=> array(1) { [0]=> string(35) "fea_posts.post_title LIKE '%links%'" } } ["tax_query"]=> object(WP_Tax_Query)#446 (2) { ["queries"]=> array(0) { } ["relation"]=> string(3) "AND" } ["meta_query"]=> object(WP_Meta_Query)#445 (2) { ["queries"]=> array(3) { [0]=> array(3) { ["key"]=> string(8) "district" ["value"]=> string(8) "rakiraki" ["compare"]=> string(4) "LIKE" } [1]=> array(3) { ["key"]=> string(14) "from_date_time" ["value"]=> string(10) "12/26/2013" ["compare"]=> string(4) "LIKE" } [2]=> array(3) { ["key"]=> string(12) "to_date_time" ["value"]=> string(0) "" ["compare"]=> string(4) "LIKE" } } ["relation"]=> string(2) "OR" } ["date_query"]=> bool(false) ["request"]=> string(767) "SELECT SQL_CALC_FOUND_ROWS fea_posts.ID FROM fea_posts INNER JOIN fea_postmeta ON (fea_posts.ID = fea_postmeta.post_id) INNER JOIN fea_postmeta AS mt1 ON (fea_posts.ID = mt1.post_id) INNER JOIN fea_postmeta AS mt2 ON (fea_posts.ID = mt2.post_id) WHERE 1=1 AND (((fea_posts.post_title LIKE '%links%') OR (fea_posts.post_content LIKE '%links%'))) AND fea_posts.post_type = 'outages' AND (fea_posts.post_status = 'publish') AND ( (fea_postmeta.meta_key = 'district' AND CAST(fea_postmeta.meta_value AS CHAR) LIKE '%rakiraki%') OR (mt1.meta_key = 'from_date_time' AND CAST(mt1.meta_value AS CHAR) LIKE '%12/26/2013%') OR (mt2.meta_key = 'to_date_time' AND CAST(mt2.meta_value AS CHAR) LIKE '%%') ) GROUP BY fea_posts.ID ORDER BY fea_posts.post_date DESC LIMIT 0, 10" ["posts"]=> array(0) { } ["post_count"]=> int(0) ["current_post"]=> int(-1) ["in_the_loop"]=> bool(false) ["comment_count"]=> int(0) ["current_comment"]=> int(-1) ["found_posts"]=> int(0) ["max_num_pages"]=> int(0) ["max_num_comment_pages"]=> int(0) ["is_single"]=> bool(false) ["is_preview"]=> bool(false) ["is_page"]=> bool(false) ["is_archive"]=> bool(false) ["is_date"]=> bool(false) ["is_year"]=> bool(false) ["is_month"]=> bool(false) ["is_day"]=> bool(false) ["is_time"]=> bool(false) ["is_author"]=> bool(false) ["is_category"]=> bool(false) ["is_tag"]=> bool(false) ["is_tax"]=> bool(false) ["is_search"]=> bool(true) ["is_feed"]=> bool(false) ["is_comment_feed"]=> bool(false) ["is_trackback"]=> bool(false) ["is_home"]=> bool(false) ["is_404"]=> bool(false) ["is_comments_popup"]=> bool(false) ["is_paged"]=> bool(false) ["is_admin"]=> bool(false) ["is_attachment"]=> bool(false) ["is_singular"]=> bool(false) ["is_robots"]=> bool(false) ["is_posts_page"]=> bool(false) ["is_post_type_archive"]=> bool(false) ["query_vars_hash"]=> string(32) "53d948b3d27e923c345546711f9b2d03" ["query_vars_changed"]=> bool(false) ["thumbnails_cached"]=> bool(false) ["stopwords":"WP_Query":private]=> array(29) { [0]=> string(5) "about" [1]=> string(2) "an" [2]=> string(3) "are" [3]=> string(2) "as" [4]=> string(2) "at" [5]=> string(2) "be" [6]=> string(2) "by" [7]=> string(3) "com" [8]=> string(3) "for" [9]=> string(4) "from" [10]=> string(3) "how" [11]=> string(2) "in" [12]=> string(2) "is" [13]=> string(2) "it" [14]=> string(2) "of" [15]=> string(2) "on" [16]=> string(2) "or" [17]=> string(4) "that" [18]=> string(3) "the" [19]=> string(4) "this" [20]=> string(2) "to" [21]=> string(3) "was" [22]=> string(4) "what" [23]=> string(4) "when" [24]=> string(5) "where" [25]=> string(3) "who" [26]=> string(4) "will" [27]=> string(4) "with" [28]=> string(3) "www" } }

new WP_Query($args) is just an Object, now an array, so count(object) will always 1. new WP_Query($ args)只是一个对象,现在是一个数组,因此count(object)始终为1。

Just quote from the WP document: 只需引用WP文档中的内容:

$the_query = new WP_Query ( $args );

// The Loop
if ($the_query->have_posts ())
{
    .....
}
else
{
    // no posts found
}

http://codex.wordpress.org/Class_Reference/WP_Query http://codex.wordpress.org/Class_Reference/WP_Query

Also, you can use $the_query->found_posts to get the total number. 另外,您可以使用$ the_query-> found_posts获取总数。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM