Changeset 49256
- Timestamp:
- 10/20/2020 08:09:39 PM (4 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/comment-template.php
r49193 r49256 1435 1435 } 1436 1436 1437 /** 1438 * Filters the arguments used in the top level comments query. 1439 * 1440 * @since 5.6.0 1441 * 1442 * @see WP_Comment_Query::__construct() 1443 * 1444 * @param array $top_level_args { 1445 * The top level query arguments for the comments template. 1446 * 1447 * @type bool $count Whether to return a comment count. 1448 * @type string|array $orderby The field(s) to order by. 1449 * @type int $post_id The post ID. 1450 * @type string|array $status The comment status to limit results by. 1451 * } 1452 */ 1453 $top_level_args = apply_filters( 'comments_template_top_level_query_args', $top_level_args ); 1454 1437 1455 $top_level_count = $top_level_query->query( $top_level_args ); 1438 1456 … … 1464 1482 * } 1465 1483 */ 1466 $comment_args = apply_filters( 'comments_template_query_args', $comment_args ); 1484 $comment_args = apply_filters( 'comments_template_query_args', $comment_args ); 1485 1467 1486 $comment_query = new WP_Comment_Query( $comment_args ); 1468 1487 $_comments = $comment_query->comments; -
trunk/tests/phpunit/tests/comment/commentsTemplate.php
r46586 r49256 961 961 $this->assertSame( array( $comment_3 ), $found_cids ); 962 962 } 963 964 /** 965 * @ticket 38074 966 * @dataProvider data_comments_template_top_level_query_args 967 * 968 * @param array $expected Array of expected values. 969 * @param array $query_args Args for the 'comments_template_query_args' filter. 970 * @param array $top_level_query_args Args for the 'comments_template_top_level_query_args' filter. 971 */ 972 public function test_comments_template_top_level_query_args( $expected, $query_args, $top_level_query_args ) { 973 $now = time(); 974 $offset = 0; 975 $p = self::factory()->post->create(); 976 $comment_ids = array(); 977 978 for ( $num = 1; $num <= 6; $num++ ) { 979 $comment_ids[ $num ] = self::factory()->comment->create( 980 array( 981 'comment_post_ID' => $p, 982 'comment_content' => "{$num}", 983 'comment_date_gmt' => gmdate( 'Y-m-d H:i:s', $now - 100 * $num ), 984 ) 985 ); 986 add_comment_meta( $comment_ids[ $num ], 'featured', $num > 3 ? '1' : '0' ); 987 } 988 989 update_option( 'comment_order', 'asc' ); 990 update_option( 'comments_per_page', 3 ); 991 update_option( 'page_comments', 1 ); 992 update_option( 'default_comments_page', 'newest' ); 993 994 add_filter( 995 'comments_template_query_args', 996 function ( $args ) use ( &$offset, $query_args ) { 997 $offset = $args['offset']; 998 999 return array_merge( $args, $query_args ); 1000 } 1001 ); 1002 1003 if ( ! empty( $top_level_query_args ) ) { 1004 add_filter( 1005 'comments_template_top_level_query_args', 1006 function ( $args ) use ( $top_level_query_args ) { 1007 return array_merge( $args, $top_level_query_args ); 1008 } 1009 ); 1010 } 1011 1012 $this->go_to( get_permalink( $p ) ); 1013 1014 $found = get_echo( 'comments_template' ); 1015 preg_match_all( '/id="comment-([0-9]+)"/', $found, $matches ); 1016 1017 $expected_ids = array(); 1018 foreach ( $expected['ids'] as $index ) { 1019 $expected_ids[] = $comment_ids[ $index ]; 1020 } 1021 1022 $this->assertSame( $expected_ids, array_map( 'intval', $matches[1] ) ); 1023 $this->assertEquals( $expected['offset'], $offset ); 1024 } 1025 1026 public function data_comments_template_top_level_query_args() { 1027 return array( 1028 array( 1029 array( 1030 'ids' => array(), 1031 'offset' => 3, 1032 ), 1033 array( 1034 'meta_key' => 'featured', 1035 'meta_value' => '1', 1036 ), 1037 array(), 1038 ), 1039 array( 1040 array( 1041 'ids' => array(), 1042 'offset' => 3, 1043 ), 1044 array( 1045 'order' => 'DESC', 1046 'meta_key' => 'featured', 1047 'meta_value' => '0', 1048 ), 1049 array(), 1050 ), 1051 array( 1052 array( 1053 'ids' => array( 6, 5, 4 ), 1054 'offset' => 0, 1055 ), 1056 array( 1057 'meta_key' => 'featured', 1058 'meta_value' => '1', 1059 ), 1060 array( 1061 'meta_key' => 'featured', 1062 'meta_value' => '1', 1063 ), 1064 ), 1065 array( 1066 array( 1067 'ids' => array( 4, 5, 6 ), 1068 'offset' => 0, 1069 ), 1070 array( 1071 'order' => 'DESC', 1072 'meta_key' => 'featured', 1073 'meta_value' => '1', 1074 ), 1075 array( 1076 'order' => 'DESC', 1077 'meta_key' => 'featured', 1078 'meta_value' => '1', 1079 ), 1080 ), 1081 ); 1082 } 963 1083 }
Note: See TracChangeset
for help on using the changeset viewer.