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

时间:2017-03-03 14:20:33

标签: php 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/

4 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

我无法找到genesis钩子的文档,所以这可能不起作用,但可能是你的动作'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();

让我知道这是否有效!

答案 2 :(得分:0)

很抱歉没有理解代码,但是如果你想通过wp_query计算搜索结果,那么你可以在循环中使用一个计数器并在循环外显示它。

希望它会对你有所帮助:)。

答案 3 :(得分:0)

在进一步审核文档并添加:

后,确定了它的工作原理
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();

谢谢大家!