Opened 9 years ago
Last modified 9 years ago
#41224 new defect (bug)
WP strips query vars if post contains "wp-admin"
| Reported by: | khromov | Owned by: | |
|---|---|---|---|
| Priority: | normal | Milestone: | Awaiting Review |
| Component: | Query | Version: | 4.9 |
| Severity: | normal | Keywords: | has-patch |
| Cc: | Focuses: |
Description
I'm running up against this rather obscure issue in the WP Query parser.
If a post name contains "wp-admin", the query vars are emptied which results in loading the front page instead of the post.
Repro steps:
- Use built-in PHP web server to start a WP site.
- Create a post or CPT called "test-wp-admin"
- View the post, you will be redirected to the frontpage.
Here is the relevant code from class-wp.php
if ( isset($perma_query_vars) && strpos($_SERVER['PHP_SELF'], 'wp-admin/') !== false )
unset( $perma_query_vars );
https://core.trac.wordpress.org/browser/trunk/src/wp-includes/class-wp.php#L276
If you inspect $_SERVERPHP_SELF, the resulting value is "/index.php/test-wp-admin/" which triggers the conditional.
It is not immediately clear to me why this is being done at all.
Attachments (1)
Change History (4)
Note:
See TracTickets
for help on using tickets.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)
I have added a patch for the above issue.