我正在为我的网站上用户提交的帖子建立一个审查系统。我有一个页面叫做page-review.php 其中显示“待审核”类别中最早的帖子。这是为了确保每个用户提交的内容都得到审查。此页面上一次只显示一篇文章。
$review_args = array(
\'orderby\' => \'post_date\',
\'order\' => \'ASC\',
\'posts_per_page\' => \'1\',
\'cat\' => 22,
);
$review_query = new WP_Query($review_args);
在一篇文章被审阅后,一个新的自定义元标记将添加到名为
reviewed_by. 此meta标记包含一组已审阅此帖子的用户ID。
如何使查询检查自定义元reviewed_by 是否包含当前用户的ID?如果在reviewed_by 数组,然后它将显示下一个在自定义元中没有用户ID的最旧帖子。
更新时间:
我似乎还是不能让它工作。中的内容reviewed_by 如下所示(我相信这是一个转换为字符串的数组)
a:1:{i:0;i:34;}
这是一个数组,其中我的user\\u id为34。
$review_args = array(
\'orderby\' => \'post_date\',
\'order\' => \'ASC\',
\'posts_per_page\' => \'1\',
\'cat\' => 22,
\'meta_query\' => array(
array(
\'key\' =>\'reviewed_by\',
\'value\' => $current_user_id,
\'compare\' => \'NOT IN\'
)
)
);
SO网友:Swen
我最终选择了一种更简单的方法。我创建了一个名为review_completed. 此user\\u meta包含他们已审阅的提交的post id数组。
然后我简单地在我的review_args 如下所示。
$user_review_completed = get_user_meta($current_user_id, \'review_completed\', true);
$review_args = array(
\'orderby\' => \'post_date\',
\'order\' => \'ASC\',
\'posts_per_page\' => \'1\',
\'cat\' => 22,
\'post__not_in\' => $user_review_completed
);