目标
在;编辑注释。php“;单击自定义列的标题后,基于注释元字段的表。上下文
为了简洁起见,我们假设在发布评论时,一个名为;“红心”;指定给它,以便所有注释都具有从0到10的正整数字段。的bold 下面提到的步骤,前三个步骤是针对上下文和预期工作给出的,问题是在第四个步骤上。1. Creating the column
add_filter( \'manage_edit-comments_columns\', \'hearts_add_comments_column\' );
function hearts_add_comments_column( $cols ) {
$cols[\'hearts\'] = \'Hearts\';
return $cols;
}
2. Populating the column
add_action( \'manage_comments_custom_column\', \'hearts_column_content\', 10, 2 );
function hearts_column_content( $column, $comment_ID ) {
switch ( $column ) :
case \'hearts\' : {
$hearts = get_comment_meta( $comment_ID, \'hearts\', true );
echo $hearts;
break;
}
endswitch;
}
一add_action( \'manage_comments_custom_column\', \'hearts_column_content\', 10, 2 ); function hearts_column_content( $column, $comment_ID ) { switch ( $column ) : case \'hearts\' : { $hearts = get_comment_meta( $comment_ID, \'hearts\', true ); echo $hearts; break; } endswitch; }
4. Sort based on comment meta
这就是问题开始的地方,以下代码中需要更改一些内容,当独立测试时,这些代码将按预期返回排序的注释列表:单击列标题时出现严重错误;“红心”;对列进行排序。重定向到包含以下消息的空页面:add_action( \'pre_get_comments\', \'hearts_orderby\' ); function hearts_orderby( $comments_query ) { $orderby = $comments_query->query_vars[\'orderby\']; if( \'by_hearts\' == $orderby ) { $comments_query->query(array( \'meta_key\' => \'hearts\', \'orderby\' => \'meta_value_num\' )); } }
Things tried
下面的代码没有错误,注释已列出但未排序。如果我完全删除下面的代码,结果是一样的。代码基于的最后一段代码this page.有没有可能以某种方式改变add_action( \'pre_get_comments\', \'hearts_orderby\' ); function hearts_orderby( $comments_query ) { $orderby = $comments_query->query_vars[\'orderby\']; if( \'by_hearts\' == $orderby ) { $comments_query->set(\'meta_key\',\'hearts\'); $comments_query->set(\'orderby\',\'meta_value_num\'); } }
hearts_orderby()
在第四步中发挥作用以获得所需的结果