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

WordPress使用Post Views Counter按浏览量排序文章无结果如何解决?

WordPress每日文章查询无结果修复方案

核心问题排查

  • 代码中post_status数组键末尾多了多余空格,导致WordPress无法正确识别发布状态筛选规则,查询逻辑失效
  • 仅使用day参数筛选日期,未传递year和monthnum参数,会匹配所有年份、所有月份对应日期的文章,筛选范围完全不符合预期
  • Post Views Counter插件默认存储浏览量的自定义字段名为pvc_views,你使用的post_views_count为非默认配置,如果你没有手动修改过插件的字段存储规则,该字段不存在会导致查询无返回
  • 直接指定meta_key参数会自动过滤没有对应自定义字段的文章,新发布未产生浏览量的文章会被排除出查询结果
  • 需求是展示当日文章,但代码中使用strtotime("yesterday")查询昨日内容,逻辑不匹配,如果确实需要展示昨日内容可忽略该问题

修正后的代码

function DisplayDailyNews(){
    // 如果需要查询当日,将yesterday改为today即可
    $target_date = strtotime("yesterday");

    $dailyGridPostQuery = new WP_Query(array(
        "post_type"             => "post",
        "post_status"           => "publish",
        "posts_per_page"        => 3,
        "year"                  => date("Y", $target_date),
        "monthnum"              => date("n", $target_date),
        "day"                   => date("j", $target_date),
        "meta_key"              => "pvc_views", // 确认自己的存储字段,自定义过就改成post_views_count
        "orderby"               => "meta_value_num",
        "order"                 => "DESC",
        // 可选配置:包含没有浏览量的文章,不会过滤新文章
        "meta_query"            => array(
            "relation" => "OR",
            array(
                "key" => "pvc_views",
                "compare" => "EXISTS",
            ),
            array(
                "key" => "pvc_views",
                "compare" => "NOT EXISTS",
                "value" => 0
            )
        )
    ));

    if ($dailyGridPostQuery->have_posts()){
        while ($dailyGridPostQuery->have_posts()){
            $dailyGridPostQuery->the_post(); 
            // 文章展示逻辑写在这里
        }
        // 重置主循环数据,避免影响后续查询
        wp_reset_postdata();
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 03:57:02