在注释循环中,跳过子项:
if( !empty( $comment->comment_parent ) ) {
//if the comment has a parent, skip it as it\'s not level 1
continue;
}
编辑:上面的例子只在阅读循环中有用,下面的例子应该在管理方面有用:
add_filter(\'the_comments\', \'top_level_comments_filter\');
function top_level_comments_filter($comments){
global $pagenow;
if($pagenow == \'edit-comments.php\'){
foreach($comments as $key => $value){
if( !empty( $value->comment_parent ) ) {
unset($comments[$key]);
continue;
}
}
}
return $comments;
}
编辑:根据您对原始问题的补遗,这将是您将所有内容组合在一起的方式。我对您的代码进行了一些清理,并为函数提供了一个内聚的名称空间。这使
filter
我告诉你
ask
正在设置的查询变量:
add_action( \'current_screen\', \'dreis_comments_exclude_lazy_hook\', 10, 2 );
/**
* Delay hooking our clauses filter to ensure it\'s only applied when needed.
*/
function dreis_comments_exclude_lazy_hook( $screen ) {
if ( $screen->id != \'edit-comments\' ) {
return;
}
// Check if our Query Var is defined
if( isset( $_GET[\'ask\'] ) ) {
add_action( \'pre_get_comments\', \'dreis_list_comments_from_specific_post\', 10, 1 );
add_filter( \'the_comments\', \'dreis_top_level_comments_filter\' );
}
add_filter( \'comment_status_links\', \'dreis_new_comments_page_link\' );
}
/**
* Only display comments of specific post_id
*/
function dreis_list_comments_from_specific_post( $clauses ) {
$clauses->query_vars[\'post_id\'] = 12;
}
/**
* Add link to specific post comments with counter
*/
function dreis_new_comments_page_link( $status_links ) {
$count = get_comments( \'post_id=12&count=1\' );
if( isset( $_GET[\'ask\'] ) ) {
$status_links[\'all\'] = \'All\';
$status_links[\'ask\'] = \'Ask (\'.$count.\')\';
} else {
$status_links[\'ask\'] = \'Ask (\'.$count.\')\';
}
return $status_links;
}
/**
* Remove non-top-level comments
*/
function dreis_top_level_comments_filter($comments){
global $pagenow;
if($pagenow == \'edit-comments.php\'){
foreach($comments as $key => $value){
if( !empty( $value->comment_parent ) ) {
unset($comments[$key]);
continue;
}
}
}
return $comments;
}