Changeset 63035
- Timestamp:
- 08/06/2026 03:16:18 AM (5 weeks ago)
- Location:
- branches/7.0
- Files:
-
- 3 edited
-
. (modified) (1 prop)
-
src/wp-includes/class-wp-query.php (modified) (2 diffs)
-
tests/phpunit/tests/query/commentFeed.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/7.0
-
branches/7.0/src/wp-includes/class-wp-query.php
r62774 r63035 2816 2816 if ( $this->is_archive || $this->is_search ) { 2817 2817 $cjoin = "JOIN {$wpdb->posts} ON ( {$wpdb->comments}.comment_post_ID = {$wpdb->posts}.ID ) $join "; 2818 $cwhere = "WHERE comment_approved = '1' $where";2818 $cwhere = "WHERE comment_approved = '1' AND {$wpdb->comments}.comment_type != 'note' $where"; 2819 2819 $cgroupby = "{$wpdb->comments}.comment_id"; 2820 2820 } else { // Other non-singular, e.g. front. 2821 2821 $cjoin = "JOIN {$wpdb->posts} ON ( {$wpdb->comments}.comment_post_ID = {$wpdb->posts}.ID )"; 2822 $cwhere = "WHERE ( post_status = 'publish' OR ( post_status = 'inherit' AND post_type = 'attachment' ) ) AND comment_approved = '1' ";2822 $cwhere = "WHERE ( post_status = 'publish' OR ( post_status = 'inherit' AND post_type = 'attachment' ) ) AND comment_approved = '1' AND {$wpdb->comments}.comment_type != 'note'"; 2823 2823 $cgroupby = ''; 2824 2824 } … … 3478 3478 3479 3479 /** This filter is documented in wp-includes/class-wp-query.php */ 3480 $cwhere = apply_filters_ref_array( 'comment_feed_where', array( "WHERE comment_post_ID = '{$this->posts[0]->ID}' AND comment_approved = '1' ", &$this ) );3480 $cwhere = apply_filters_ref_array( 'comment_feed_where', array( "WHERE comment_post_ID = '{$this->posts[0]->ID}' AND comment_approved = '1' AND {$wpdb->comments}.comment_type != 'note'", &$this ) ); 3481 3481 3482 3482 /** This filter is documented in wp-includes/class-wp-query.php */ -
branches/7.0/tests/phpunit/tests/query/commentFeed.php
r55745 r63035 7 7 */ 8 8 class Tests_Query_CommentFeed extends WP_UnitTestCase { 9 public static $post_type = 'post'; 10 protected static $post_ids = array(); 9 public static string $post_type = 'post'; 10 11 /** 12 * @var int[] 13 */ 14 protected static array $post_ids = array(); 11 15 12 16 public static function wpSetUpBeforeClass( WP_UnitTest_Factory $factory ) { … … 84 88 85 89 /** 90 * @ticket 65613 91 */ 92 public function test_main_comment_feed_should_exclude_notes(): void { 93 $note_id = self::factory()->comment->create( 94 array( 95 'comment_post_ID' => self::$post_ids[0], 96 'comment_type' => 'note', 97 'comment_approved' => '1', 98 ) 99 ); 100 101 $q = new WP_Query(); 102 $q->query( 103 array( 104 'withcomments' => 1, 105 'feed' => 'comments-rss', 106 ) 107 ); 108 109 $this->assertTrue( $q->is_comment_feed() ); 110 $this->assertFalse( $q->is_singular() ); 111 112 $comment_ids = array_map( 'intval', wp_list_pluck( $q->comments, 'comment_ID' ) ); 113 $this->assertNotContains( $note_id, $comment_ids, 'Comments feed should not include notes.' ); 114 $this->assertSame( 15, $q->comment_count, 'Comments feed should include all regular comments.' ); 115 } 116 117 /** 118 * @ticket 65613 119 */ 120 public function test_archive_comment_feed_should_exclude_notes(): void { 121 $note_id = self::factory()->comment->create( 122 array( 123 'comment_post_ID' => self::$post_ids[0], 124 'comment_type' => 'note', 125 'comment_approved' => '1', 126 ) 127 ); 128 129 $q = new WP_Query(); 130 $q->query( 131 array( 132 'withcomments' => 1, 133 'feed' => 'comments-rss', 134 'year' => (int) get_the_date( 'Y', self::$post_ids[0] ), 135 ) 136 ); 137 138 $this->assertTrue( $q->is_comment_feed() ); 139 $this->assertTrue( $q->is_archive() ); 140 141 $comment_ids = array_map( 'intval', wp_list_pluck( $q->comments, 'comment_ID' ) ); 142 $this->assertNotContains( $note_id, $comment_ids, 'Archive comments feed should not include notes.' ); 143 $this->assertSame( 15, $q->comment_count, 'Archive comments feed should include all regular comments.' ); 144 } 145 146 /** 147 * @ticket 65613 148 */ 149 public function test_single_comment_feed_should_exclude_notes(): void { 150 $post = get_post( self::$post_ids[0] ); 151 $this->assertInstanceOf( WP_Post::class, $post ); 152 153 $note_id = self::factory()->comment->create( 154 array( 155 'comment_post_ID' => $post->ID, 156 'comment_type' => 'note', 157 'comment_approved' => '1', 158 ) 159 ); 160 161 $q = new WP_Query(); 162 $q->query( 163 array( 164 'withcomments' => 1, 165 'feed' => 'comments-rss', 166 'post_type' => $post->post_type, 167 'name' => $post->post_name, 168 ) 169 ); 170 171 $this->assertTrue( $q->is_comment_feed() ); 172 $this->assertTrue( $q->is_singular() ); 173 174 $comment_ids = array_map( 'intval', wp_list_pluck( $q->comments, 'comment_ID' ) ); 175 $this->assertNotContains( $note_id, $comment_ids, 'Singular comments feed should not include notes.' ); 176 $this->assertSame( 5, $q->comment_count, 'Singular comments feed should include all regular comments.' ); 177 } 178 179 /** 86 180 * @ticket 36904 87 181 */
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)