注释弹出页面包含一个注释循环,可以通过is comments popup()
条件,返回true
或false
. 然而,我看不到这个特性在现代开发中被使用。这可能是唯一包含注释直接循环的地方。
这个$wp_query
本身不包含任何评论数据,除非帖子是否有评论(以及存在的评论数量)。注释本身稍后会在模板文件中调用(例如single.php
) 通过使用如下循环:
while ( have_posts() ) {
the_post();
get_template_part( \'SOME TEMPLATE HERE\' );
comments_template();
}
The
comments_template()
自身将使用
WP_Comments_Query()
查询注释列表。所以,在评论循环中意味着在页面或帖子模板上。因此,问题中张贴的条件没有帮助,除非我们这样更改:
if ( is_single() || is_attachment() || is_page() ) {
// post, page, attachment
update_post_meta($id, $meta_data, $meta_value);
if(have_comments()) {
// Run some stuff here
}
} elseif (is_author()) {
// author page
update_user_meta($id, $meta_data, $meta_value);
} elseif ( is_category() || is_tag() || is_tax() ) {
// taxonomies
update_term_meta($id, $meta_data, $meta_value);
}
这将同时更新评论和帖子。
但有一个过滤器,它会在任何时候触发comment_template()
函数是在模板文件中调用的,因此它可能是挂接和更新注释元的地方:
add_filter( "comments_template", "update_comments_meta" );
function update_comments_meta($comment_template){
global $post;
if ( have_comments() ){
// Do some stuff here
}
return $comment_template;
}