我想知道作者是否在过去30天内发表过文章,但即使作者在过去30天内没有发表过文章,这也会返回TRUE。
<?php $args = array(
\'post_type\' => \'post\',
\'post_status\' => \'publish\',
\'author\' => get_current_user_id(),
\'date_query\' => array(array(\'after\' => date(\'Y-m-d\', strtotime(\'-30 days\')), \'inclusive\' => true,),)
, \'fields\' => \'ids\',);
$wp_posts = get_posts($args);
if(count($wp_posts)) : ?>
<div>Author posted within the last 30 days</div>
<?php else : ?>
<div>Author did not post within the last 30 days</div>
<?php endif; ?>
我不知道我做错了什么。
最合适的回答,由SO网友:tmdesigned 整理而成
实际上,您的函数按您所描述的那样工作。
我将你的功能复制到我网站上的页面模板中,根本没有修改它。我用我的主要用户测试了它,它已经发布了,它说我已经发布了。
然后,我创建了一个尚未发布的虚拟用户。我测试了同一个页面,它说我没有发布。我还发布了一篇回溯了30多天的帖子,它仍然说我在过去30天内没有发布过。
所有这些都是出于设计。
要记住几点:
您没有在查询中指定要检索的帖子类型。你确定你正在测试的用户没有发布任何类型的帖子吗?i、 e.自定义帖子类型、页面、通过插件的联系表单等。
您的代码也始终在检查当前登录的用户。确保这就是你想要的。