我在常规帖子中添加了2个帖子状态。它们是“已解决”和“未解决”的,本质上是对问题的基本跟踪。两者都注册为“公共”。来自这些状态的帖子将显示在帖子RSS提要中。但是,添加到具有这些状态的帖子的评论不会显示在评论提要中。添加到常规“已发布”帖子的评论看起来不错。我已经检查过了,当一条新评论添加到已解决/未解决的帖子中,并进行了双重检查,所有评论都列为“已批准”,但仍不显示时,提要缓存正在更新。
我已经对WP源做了很多探索,试图确定为什么会这样,但我做不到。在获取帖子之前,我甚至尝试将我的帖子状态手动添加到WP\\u查询对象,但没有结果。feed本身使用WP\\u Query对象,但我无法确定是否也有对WP\\u Comment\\u Query的调用。WP\\u查询对象设置了“with\\u comments”标志。
那么,有人知道为什么会发生这种情况吗?我的假设是,在查询链的某个地方,他们专门针对“已发布”的帖子,但必须弄清楚我可能会使用什么钩子来更改它。
以下是注册我的状态的代码:
function resolved_unresolved_status() {
register_post_status(\'resolved\',
array(
\'label\' => _x(\'Resolved\', \'post\'),
\'public\' => true,
\'exclude_from_search\' => false,
\'show_in_admin_all_list\' => true,
\'show_in_admin_status_list\' => true,
\'label_count\' => _n_noop(\'Resolved <span class="count">(%s)</span>\', \'Resolved <span class="count">(%s)</span>\')
)
);
register_post_status(\'unresolved\',
array(
\'label\' => _x(\'Unresolved\', \'post\'),
\'public\' => true,
\'exclude_from_search\' => false,
\'show_in_admin_all_list\' => true,
\'show_in_admin_status_list\' => true,
\'label_count\' => _n_noop(\'Unresolved <span class="count">(%s)</span>\', \'Unresolved <span class="count">(%s)</span>\')
)
);
}
add_action(\'init\', __NAMESPACE__ . \'\\\\resolved_unresolved_status\');
在这里我试着使用
pre_get_posts
筛选以强制我的状态为“无运气”:
function alter_feed_query($query) {
if($query->is_comment_feed) {
$query->set(\'post_status\', array(\'publish\', \'resolved\', \'unresolved\'));
}
return $query;
}
add_filter(\'pre_get_posts\', __NAMESPACE__ . \'\\\\alter_feed_query\');