我试图显示搜索找到的帖子数量。
我发现此代码$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
答案 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();
谢谢大家!