如何在 WordPress 中显示搜索结果的数量(Genesis)

How to display number of search results in WordPress (Genesis)

我正在尝试显示通过搜索找到的帖子数。

我找到了这段代码 $wp_query->found_posts 但似乎无法正常工作,有什么建议吗?

<?php

add_action( 'genesis_before_loop', 'genesis_do_search_title' );

function genesis_do_search_title() {

    $title = sprintf( '<div class="archive-description"><h1 class="archive-title">%s %s %s</h1></div>',  $wp_query->found_posts, apply_filters( 'genesis_search_title_text', __( 'results for:', 'genesis' ) ), get_search_query() );

    echo apply_filters( 'genesis_search_title_output', $title ) . "\n";

}

genesis();

文档:

https://codex.wordpress.org/Creating_a_Search_Page#Display_Total_Results

http://my.studiopress.com/documentation/snippets/

我真的找不到 genesis hooks 的文档,所以这可能行不通,但可能是你的操作 'genesis_before_loop' 在设置循环变量之前执行。请尝试使用 'loop_start'。

<?php

add_action( 'loop_start', 'genesis_do_search_title' );

function genesis_do_search_title() {

    $title = sprintf( '<div class="archive-description"><h1 class="archive-title">%s %s %s</h1></div>',  $wp_query->found_posts, apply_filters( 'genesis_search_title_text', __( 'results for:', 'genesis' ) ), get_search_query() );

    echo apply_filters( 'genesis_search_title_output', $title ) . "\n";

}

genesis();

如果可行,请告诉我!

抱歉没看懂代码但是如果你想通过wp_query统计搜索结果,那么你可以在循环内使用计数器并在循环外显示它。

希望对您有所帮助:)

在进一步查看文档并添加以下内容后,它开始工作了:

global $wp_query;

所以代码是:

<?php

add_action( 'genesis_before_loop', 'genesis_do_search_title' );

function genesis_do_search_title() {

    global $wp_query;

    $title = sprintf( '<div class="archive-description"><h1 class="archive-title">%s %s %s</h1></div>',  $wp_query->found_posts, apply_filters( 'genesis_search_title_text', __( 'results for:', 'genesis' ) ), get_search_query() );

    echo apply_filters( 'genesis_search_title_output', $title ) . "\n";

}

genesis();

谢谢大家!

global $wp_query; 需要存在。使用的语法应该是:

global $wp_query;
$total_results = $wp_query->found_posts;