我有一个代码,它应该计算今天发布和编辑的所有帖子.

目前我正在使用一个代码来统计今天修改的帖子,但它不是很准确.有时它不提供准确的统计数据,除此之外,我想计算发布和修改的帖子.

function sabtfactor_su($shenase){
    $today = getdate();
    
    $s_b = get_posts(array(
    'fields' => 'ids',
    'post_type'=>'post',
    'author'=>$shenase,
    'numberposts'=>-1,
    'meta_key'=>'shomare_status','meta_value'=>'Example',
    'date_query' => [
        'column' => 'post_modified',
        'after'  => [
            'year'=>$today['year'],
            'month'=>$today['mon'],
            'day'=>$today['mday']-1
        ],
    ]
    ));

    return count($s_b)+0; 
}
  1. 如果我从'day'=>$today['mday']-1中删除-1,它将返回0.
  2. 我认为这是很好的,如果我按'column' => 'post_modified'查询,所以如果有必要添加一个参数的帖子,如'column' => 'published',,请告知.

推荐答案

以下函数返回publishedmodified today的全部posts的计数:

function sabtfactor_su() {
    global $wpdb;
    $today = date("Y-m-d");
    $query = "SELECT COUNT(ID) FROM {$wpdb->prefix}posts WHERE post_type='post' AND post_status='publish' AND post_modified_gmt LIKE '{$today}%'";
    return (int)$wpdb->get_var($query);
}

要获得相同的结果,但要针对特定的author_id使用:

function sabtfactor_su($shenase) {
    global $wpdb;
    $today = date("Y-m-d");
    $query = "SELECT COUNT(ID) FROM {$wpdb->prefix}posts WHERE post_type='post' AND post_author='%d' AND post_status='publish' AND post_modified_gmt LIKE '{$today}%'";
    return (int)$wpdb->get_var($wpdb->prepare($query, $shenase));
}

并进一步将范围缩小到所有开机自检,对于特定的meta_key,对于特定的author_id使用,指定的meta_value:

function sabtfactor_su($shenase) {
    global $wpdb;
    $today = date("Y-m-d");
    $query = "SELECT COUNT(ID) FROM {$wpdb->prefix}posts INNER JOIN {$wpdb->prefix}postmeta ON post_id=ID AND meta_key='shomare_status' AND meta_value='Example' WHERE post_type='post' AND post_author='%d' AND post_status='publish' AND post_modified_gmt LIKE '{$today}%'";
    return (int)$wpdb->get_var($wpdb->prepare($query, $shenase));
}

Php相关问答推荐

用户信息更新期间Laravel邮箱验证问题

SQLSTATE [42S02]:找不到基表或视图:1146 Table eshop. sessions不存在'''

使用.htaccess将任何路由重定向到文件

保存PHP条带以备将来使用,不显示用户界面

有没有办法为整个PHP应用程序启用严格类型

如何使用php一次更新两个数据库中的MySQL表

使用MySQLi使用连接字符串设置字符集

防止同时从Laravel中的用户帐户中提取

以编程方式同步 WPML 翻译更改 Woocommerce 产品销售价格

使用帖子 ID 更新 wp 帖子

使用 secure 和 httponly 选项删除 php 中的 cookie 值得吗?

为什么 php 只能在我的 Nginx Web 服务器的某些目录中工作?

Firefox 115 会话行为:为什么页面无法找到要加载的现有会话 ID?

在 WooCommerce 我的帐户自定义部分显示未购买的产品

为 WordPress 页面创建新功能

PHP 合并/合并多维数组

Laravel 8:会话不适用

适当的时区处理 Laravel / Carbon

Laravel 10 单元测试看不到来自 Artisan Command 的数据库更改

WordPress 函数 get_post(post_id) 是否查询数据库?