You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Elementor Pro文章小部件自定义查询found_posts返回0求助

解决Elementor Pro文章小部件自定义查询中found_posts显示0的问题

你当前代码里直接调用$fav_query->found_posts返回0的原因是:elementor/query/my_fav_query3钩子触发时,WP_Query还处于参数设置阶段,尚未执行实际的数据库查询,found_posts属性还未被计算赋值。

以下是三种可行的解决方法:

方案1:直接计算有效文章数量(简单高效)

既然已经明确指定了post__in的ID数组,直接统计其中实际存在的公开文章数量即可,无需依赖查询对象的属性:

function my_fav_by_user($fav_query) {
    $post_ids = array(2783,2780,2793,2528,2873, 2477,2892,2890);
    // 过滤掉不存在或非公开状态的文章ID
    $valid_post_ids = array_filter($post_ids, function($id) {
        $post = get_post($id);
        return $post && $post->post_status === 'publish';
    });
    $total_posts = count($valid_post_ids);
    
    $fav_query->set('post__in', $valid_post_ids);
    
    _e("Total Posts=".$total_posts, 'my-text-domain');
}
add_action( 'elementor/query/my_fav_query3', 'my_fav_by_user' );

方案2:手动触发查询后获取found_posts

如果必须使用WP_Query的found_posts属性,可手动触发查询执行,再获取该值:

function my_fav_by_user($fav_query) {
    $post_ids = array(2783,2780,2793,2528,2873, 2477,2892,2890);
    $fav_query->set('post__in', $post_ids);
    
    // 手动执行查询,触发found_posts的计算
    $fav_query->get_posts();
    
    _e("Total Posts=".$fav_query->found_posts, 'my-text-domain');
}
add_action( 'elementor/query/my_fav_query3', 'my_fav_by_user' );

方案3:在查询执行后的钩子中获取

改用Elementor渲染阶段的钩子,在小部件渲染时获取已执行查询的found_posts:

function my_fav_by_user($fav_query) {
    $post_ids = array(2783,2780,2793,2528,2873, 2477,2892,2890);
    $fav_query->set('post__in', $post_ids);
}
add_action( 'elementor/query/my_fav_query3', 'my_fav_by_user' );

// 在文章小部件渲染前显示总数
function display_fav_post_count($widget) {
    if ($widget->get_name() === 'posts' && $widget->get_query_id() === 'my_fav_query3') {
        $query = $widget->get_query();
        _e("Total Posts=".$query->found_posts, 'my-text-domain');
    }
}
add_action('elementor/widget/before_render_content', 'display_fav_post_count');

内容的提问来源于stack exchange,提问作者Muhammad Tasleem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 12:18:18