@@ -17,7 +17,7 @@ public static function init() {
1717
1818 // Remove Webmention types from the Comment Template Query
1919 if ( separate_webmentions_from_comments () ) {
20- add_filter ( 'comments_template_query_args ' , array ( static ::class, 'filter_comments_query_args ' ) );
20+ add_action ( 'pre_get_comments ' , array ( static ::class, 'comment_query ' ) );
2121
2222 add_action ( 'comment_form_before ' , array ( static ::class, 'show_separated_reactions ' ) );
2323 add_action ( 'comment_form_comments_closed ' , array ( static ::class, 'show_separated_reactions ' ) );
@@ -37,19 +37,6 @@ public static function filter_comment_args( $args ) {
3737 return $ args ;
3838 }
3939
40- /**
41- * Filter the comment template query arguments to exclude Webmention comment types
42- *
43- * @param array $args an array of arguments for displaying comments
44- *
45- * @return array the filtered array
46- */
47- public static function filter_comments_query_args ( $ args ) {
48- $ args ['type__not_in ' ] = get_webmention_comment_type_names ();
49-
50- return $ args ;
51- }
52-
5340 /**
5441 * Show Facepile section
5542 */
@@ -285,4 +272,32 @@ protected function html5_comment( $comment, $depth, $args ) {
285272 </article><!-- .comment-body -->
286273 <?php
287274 }
275+
276+ /**
277+ * Excludes bookmarks, likes and reposts from comment queries.
278+ *
279+ * @todo: Use some kind of "comment taxonomy" instead?
280+ *
281+ * @param WP_Comment_Query $query Comment count.
282+ */
283+ public static function comment_query ( $ query ) {
284+ if ( is_admin () ) {
285+ return ;
286+ }
287+
288+ if ( ! is_singular () ) {
289+ return ;
290+ }
291+
292+ if ( ! empty ( $ query ->query_vars ['type__in ' ] ) ) {
293+ return ;
294+ }
295+
296+ if ( isset ( $ query ->query_vars ['count ' ] ) && true === $ query ->query_vars ['count ' ] ) {
297+ return ;
298+ }
299+
300+ // Exclude likes and reposts by the Webmention plugin.
301+ $ query ->query_vars ['type__not_in ' ] = get_webmention_comment_type_names ();
302+ }
288303}
0 commit comments