Query: Exclude notes from comment feed queries.#12486
Conversation
Derive the `Disallow` and `Allow` directives in `do_robots()` from `admin_url()` and `admin_url( 'admin-ajax.php' )` rather than from a hardcoded `/wp-admin/` path built off `site_url()`. Only the URL path portion is emitted, as before, so installs that relocate or filter their admin URL now produce a correct default `robots.txt`. Also guard the `Content-Type` header with a `headers_sent()` check to avoid a warning when the headers have already been sent. Developed in WordPress#11998. Follow-up to r34985. Props masteradhoc, yogeshbhutkar, hrohh, westonruter, mukeshpanchal27, 1ucay. Fixes #63467. git-svn-id: https://develop.svn.wordpress.org/trunk@62633 602fd350-edb4-49c9-b593-d223f7449a82
The `ini_get()` function is called unconditionally early in the bootstrap process, so there is no need for subsequent `function_exists( 'ini_get' )` checks. Follow-up to [44986], [45104]. Props siliconforks, shreyasikhar26, ankitkumarshah, westonruter, SergeyBiryukov. Fixes #65423. git-svn-id: https://develop.svn.wordpress.org/trunk@62634 602fd350-edb4-49c9-b593-d223f7449a82
This brings the `WP_Error` class to full PHPStan rule level 10 compliance. Also make use of null coalescing operator where appropriate, and simplify `has_errors()` method. Developed in WordPress#12405. Follow-up to r42761, r49115, r49116. See #64898, #64897. git-svn-id: https://develop.svn.wordpress.org/trunk@62635 602fd350-edb4-49c9-b593-d223f7449a82
…p()` and `::chown()`. This applies the equivalent fix which had previously been done to `::chmod()`. Tests are added for all three methods. Developed in subset of WordPress#11593. Follow-up to r12997. Fixes #65584. See #65409, WordPress#11261. git-svn-id: https://develop.svn.wordpress.org/trunk@62636 602fd350-edb4-49c9-b593-d223f7449a82
Change the optional constructor argument of `WP_Filesystem_FTPext`, `WP_Filesystem_ftpsockets`, and `WP_Filesystem_SSH2` from an empty string default to an empty `array`, matching how the argument is actually consumed, and improve the associated DocBlocks. These classes were also brought to adherence with PHPStan rule level 10: * Add `FileListing` and `Options` array shapes, and initialize each transport's `$options` to a complete default array before any early return. * Correct several inaccurate `@return` descriptions, including the `group()` methods that had been describing the owner. * Allow `WP_Filesystem_SSH2::connect()` to be retried after a failed connection attempt. * Stop `WP_Filesystem_FTPext::parselisting()` from leaking its intermediate date-parsing keys into the returned listing. * Add `ext-ftp` and `ext-ssh2` to the suggested extensions in `composer.json`. Developed in WordPress#11593. Follow-up to r62635, r62636. Props soean, westonruter, mukesh27. See #65584, #64898. Fixes #65409. git-svn-id: https://develop.svn.wordpress.org/trunk@62637 602fd350-edb4-49c9-b593-d223f7449a82
Follow-up to [52292]. Props Soean. See #64894. git-svn-id: https://develop.svn.wordpress.org/trunk@62638 602fd350-edb4-49c9-b593-d223f7449a82
The 'note' comment type is internal and must not be exposed publicly, but the raw comment feed queries built by WP_Query do not exclude it. See #65613.
WP_Query builds comment feed queries with raw SQL, bypassing the 'note' comment type exclusion that WP_Comment_Query applies. As a result, internal notes were exposed publicly in the main comments feed, archive/search comment feeds, and singular post comment feeds. Add the 'note' type exclusion to all three feed WHERE clauses so notes never appear in public feeds, consistent with [61105]. See #65613.
|
The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the Unlinked AccountsThe following contributors have not linked their GitHub and WordPress.org accounts: @SergeyBiryukov602fd350-edb4-49c9-b593-d223f7449a82. Contributors, please read how to link your accounts to ensure your work is properly credited in WordPress releases. Core Committers: Use this line as a base for the props when committing in SVN: To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook. |
Test using WordPress PlaygroundThe changes in this pull request can previewed and tested using a WordPress Playground instance. WordPress Playground is an experimental project that creates a full WordPress instance entirely within the browser. Some things to be aware of
For more details about these limitations and more, check out the Limitations page in the WordPress Playground documentation. |
|
ps. I've started working on https://core.trac.wordpress.org/ticket/35214 |
|
I confirmed that the three new tests all fail when running against |
Trac ticket: https://core.trac.wordpress.org/ticket/65613
Problem
Internal notes (the
notecomment type) still appear publicly in the RSS/Atom comment feeds at<site-url>/comments/feed, in archive/search comment feeds, and in singular post comment feeds.[61105] (#64145) excluded the
notetype inWP_Comment_Query, butWP_Querybuilds its comment feed queries with raw SQL that bypassesWP_Comment_Queryentirely, so the exclusion never applies to feeds.Fix
Add
comment_type != 'note'to the three raw comment feedWHEREclauses inWP_Query:This matches the exclusion behavior established in
WP_Comment_Queryandwp_count_comments().Testing
Adds three tests to
Tests_Query_CommentFeed, one per feed query path, each creating an approvednotecomment and asserting it does not appear in the feed while regular comments still do. All three fail before the fix and pass after.Full
query(1878 tests),comment(547 tests), andfeed/feeds(50 tests) groups pass locally.