Commit Graph

185 Commits

Author SHA1 Message Date
Pascal Birchler b0b13aff2f Embeds: Allow embedding static front pages and pages having a child page with an `embed` slug.
This makes `embed` a special slug that can't be used for new pages/posts. When `https://example.com/foo/embed/` is an existing page, embeds fall back to `https://example.com/foo/?embed=true`.
Adds unit tests.

Fixes #34971.
Built from https://develop.svn.wordpress.org/trunk@36307


git-svn-id: http://core.svn.wordpress.org/trunk@36274 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-01-15 07:56:26 +00:00
Pascal Birchler f079f57357 Rewrite: Add a `remove_rewrite_tag()` helper function.
It can be used to properly remove registered rewrite tags. Adds unit tests.

Fixes #35236.
Built from https://develop.svn.wordpress.org/trunk@36217


git-svn-id: http://core.svn.wordpress.org/trunk@36184 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-01-07 09:39:27 +00:00
Pascal Birchler dbe28bf8e3 Rewrite: Add a `remove_permastruct()` helper function.
It can be used to remove permastructs that were added using `add_permastruct()`.

Fixes #35235.
Built from https://develop.svn.wordpress.org/trunk@36181


git-svn-id: http://core.svn.wordpress.org/trunk@36148 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-01-06 07:40:26 +00:00
Andrew Nacin 1579e45d41 Simplify the include graph after work to split out classes.
see #33413. More details there.

Built from https://develop.svn.wordpress.org/trunk@35718


git-svn-id: http://core.svn.wordpress.org/trunk@35682 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-11-20 07:24:30 +00:00
Scott Taylor 207abc77e1 Rewrite: move `WP_Rewrite` into its own file. `rewrite.php` loads the new files, so this is 100% BC if someone is loading `rewrite.php` directly. New files created using `svn cp`.
The rewrite functions have all kinds of cross-dependencies (like `WP_Query`), so loading the file by itself would have been bizarre (and still is).

Creates: 
`rewrite-constants.php` 
`rewrite-functions.php` 
`class-wp-rewrite.php` 

`rewrite.php` contains only top-level code. Class file only contains the class. Functions file only contains functions.

See #33413.

Built from https://develop.svn.wordpress.org/trunk@33751


git-svn-id: http://core.svn.wordpress.org/trunk@33719 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-08-26 04:42:20 +00:00
Drew Jaynes 6b5728c5b9 Properly mark the `$query_var` parameter as optional in the DocBlock for `WP_Rewrite->add_endpoint()`.
See #32246. See #32891.

Built from https://develop.svn.wordpress.org/trunk@33237


git-svn-id: http://core.svn.wordpress.org/trunk@33209 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-07-13 21:55:24 +00:00
Drew Jaynes e6dd566b79 Add better line wrapping and syntax improvements to the description for `wp_resolve_numeric_slug_conflicts()`, added in 4.3.
Also properly mark `$query_vars` as optional in the parameter description.

See [32648]. See #32891.

Built from https://develop.svn.wordpress.org/trunk@33236


git-svn-id: http://core.svn.wordpress.org/trunk@33208 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-07-13 21:54:24 +00:00
Drew Jaynes 47b1aca89d Remove a now-unnecessary inline `@see` tag from the description for `add_rewrite_endpoint()`.
See #32246.

Built from https://develop.svn.wordpress.org/trunk@33235


git-svn-id: http://core.svn.wordpress.org/trunk@33207 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-07-13 21:51:24 +00:00
Scott Taylor b3ecfda08d `WP_Rewrite::add_rule()` should strictly check against `false` when using `strpos()`.
See #32444.

Built from https://develop.svn.wordpress.org/trunk@32941


git-svn-id: http://core.svn.wordpress.org/trunk@32912 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-06-25 16:56:25 +00:00
Scott Taylor 19a3aacc94 Add `@static*` annotations where they are missing.
Initialize all static vars that are not, most to `null`.

See #32444.

Built from https://develop.svn.wordpress.org/trunk@32650


git-svn-id: http://core.svn.wordpress.org/trunk@32620 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-05-29 15:43:29 +00:00
Boone Gorges ebac76facc When parsing what appears to be a date archive request, check for a post with a clashing permalink before resolving to the archive.
A URL like `example.com/2015/05/15/` generally resolves to the May 15, 2015 date
archive. But in certain cases, it could also be the permalink of a post with
the slug `'2015'`. When a conflict of this sort is detected, resolve to the post
instead of the archive.

URL conflicts of this sort should no longer occur for new posts; see [32647].

Props valendesigns, boonebgorges, Denis-de-Bernardy.
Fixes #5305.
Built from https://develop.svn.wordpress.org/trunk@32648


git-svn-id: http://core.svn.wordpress.org/trunk@32618 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-05-29 13:10:24 +00:00
Scott Taylor 274daa059a Add missing doc blocks to `rewrite.php`.
Clarify `@return` values where necessary.
`add_permastruct()` doesn't need to return.
`->using_index_permalinks()` and `->using_mod_rewrite_permalinks()` can just return their conditions, instead of if/else true/false.
`->mod_rewrite_rules()` and `->iis7_url_rewrite_rules()` don't need to set a variable that is immediately returned.
 
See #32444.

Built from https://develop.svn.wordpress.org/trunk@32622


git-svn-id: http://core.svn.wordpress.org/trunk@32592 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-05-27 19:23:26 +00:00
Boone Gorges 317150ccbd Allow rewrite endpoints to be registered without also registering query vars.
Passing `false` to `add_rewrite_endpoint()` will now allow you to take
advantage of the rewrite API without thereby modifying the way that WP sets up
the main query from the request URI.

This new functionality allows developers to work around certain edge-case bugs,
such as when a proper endpoint request (such as `/test/1/`) would short-
circuit `is_home()` calculation when a static front page is set.

Props mordauk, boonebgorges.
Fixes #25143.
Built from https://develop.svn.wordpress.org/trunk@32293


git-svn-id: http://core.svn.wordpress.org/trunk@32264 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-04-24 16:38:28 +00:00
Sergey Biryukov 66e483d3e7 When shifting `WP_Rewrite::flush_rules()` to a later action if it was called too early, make sure to do a hard flush if requested.
props Denis-de-Bernardy, mordauk for initial patch.
fixes #30501.
Built from https://develop.svn.wordpress.org/trunk@31964


git-svn-id: http://core.svn.wordpress.org/trunk@31943 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-04-01 19:06:29 +00:00
Sergey Biryukov 612b9e8ffd Replace hardcoded usage of `comment-page` with the comment pagination base.
props johnbillion, SergeyBiryukov, webord.
fixes #18084.
Built from https://develop.svn.wordpress.org/trunk@31459


git-svn-id: http://core.svn.wordpress.org/trunk@31440 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-02-14 03:48:27 +00:00
Scott Taylor 0a511680f4 Adding a `@return` annotation to constructors is generally not recommended as a constructor does not have a meaningful return value. Constructors do not have meaningful return values, anything that is returned from here is discarded.
See #30799.

Built from https://develop.svn.wordpress.org/trunk@31126


git-svn-id: http://core.svn.wordpress.org/trunk@31107 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-01-10 06:54:23 +00:00
Sergey Biryukov 91297b7a30 If WP_Rewrite::flush_rules() is called on 'init' or earlier, wait until 'wp_loaded' before actually flushing the rules, to make sure all the rules registered on 'init' are included.
props joostdevalk.
see #30501.
Built from https://develop.svn.wordpress.org/trunk@31104


git-svn-id: http://core.svn.wordpress.org/trunk@31085 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-01-08 22:00:23 +00:00
Scott Taylor 60b0cd7943 The keyword `elseif` should be used instead of `else if` so that all control keywords look like single words.
This was a mess, is now standardized across the codebase, except for a few 3rd-party libs. 

See #30799.

Built from https://develop.svn.wordpress.org/trunk@31090


git-svn-id: http://core.svn.wordpress.org/trunk@31071 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-01-08 07:05:25 +00:00
Scott Taylor e029005847 Access Modifiers:
* In `WP_Plugin_Install_List_Table`, use `public` instead of `var`
* In `WP_User`, `->data` is accessed directly on an instance if the constructor receives it: make it `public`
* In `WP_Locale`, every property is exported to a global and is already `public` via `var`, half of the properties are accessed directly already, make them all `public`
* In `WP_Rewrite`, several properties are accessed publicly in functions via the `$wp_rewrite` global, make those props `public`.
* In `WP_Rewrite`, the property `->comment_feed_structure` was misspelled as `->comments_feed_structure`

See #30799.

Built from https://develop.svn.wordpress.org/trunk@31078


git-svn-id: http://core.svn.wordpress.org/trunk@31059 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-01-08 05:44:23 +00:00
Scott Taylor 5eb5afac34 For clarity, initialize some arrays that previously were only assigned via short circuit in loops.
See #30799.

Built from https://develop.svn.wordpress.org/trunk@30982


git-svn-id: http://core.svn.wordpress.org/trunk@30968 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-12-20 22:47:22 +00:00
Drew Jaynes c4b9da857a Using let's properly in inline comments lets us move on to more pressing matters of inline documentation.
Props trepmal.
Fixes #30570.

Built from https://develop.svn.wordpress.org/trunk@30703


git-svn-id: http://core.svn.wordpress.org/trunk@30693 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-12-02 04:43:22 +00:00
Scott Taylor 3752aa7ce8 Improve the `@param` docs for `src/includes/rewrite.php`.
See #30224.

Built from https://develop.svn.wordpress.org/trunk@30669


git-svn-id: http://core.svn.wordpress.org/trunk@30659 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-11-30 22:25:23 +00:00
Drew Jaynes bffe95d34c Docs Formatting: Backtick-escape inline code for all remaining dynamic hook docs in wp-includes/*.
Affects DocBlocks for the following hooks:
* `auth_post_meta_{$meta_key}`
* `term_links-$taxonomy`
* `customize_render_control_ . $this->id`
* `customize_render_panel_{$this->id}`
* `customize_render_section_{$this->id}`
* `customize_preview_{$this->id}`
* `customize_save_ . $this->id_data[ 'base' ]`
* `customize_update_ . $this->type`
* `customize_value_ . $this->id_data[ 'base' ]`
* `customize_sanitize_js_{$this->id}`
* `comment_form_field_{$name}`
* `comment_{$old_status}_to_{$new_status}`
* `comment_{$new_status}_{$comment->comment_type}`
* `extra_{$context}_headers`
* `get_template_part_{$slug}`
* `get_the_generator_{$type}`
* `get_{$adjacent}_post_join`
* `get_{$adjacent}_post_where`
* `get_{$adjacent}_post_sort`
* `{$adjacent}_post_rel_link`
* `{$adjacent}_post_link`
* `{$adjacent}_image_link`
* `blog_option_{$option}`
* `$permastructname . _rewrite_rules`
* `{$type}_template`
* `theme_mod_{$name}`
* `pre_set_theme_mod_$name`
* `current_theme_supports-{$feature}`
* `get_user_option_{$option}`
* `edit_user_{$field}`
* `pre_user_{$field}`
* `user_{$field}`

See #30552.

Built from https://develop.svn.wordpress.org/trunk@30656


git-svn-id: http://core.svn.wordpress.org/trunk@30646 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-11-30 12:10:23 +00:00
Drew Jaynes 3b6c9519a8 Ensure inline code is markdown-escaped as such, HTML tags are removed from summaries, and that code snippets in descriptions are properly indented.
Affects DocBlocks for the following core elements:
* Backtick-escape HTML tags in several argument descriptions for `wp_link_pages()`
* Remove an HTML tag from the summary for `prepend_attachment()`
* Backtick-escape inline code in the description for `get_extended()`
* Backtick-escape inline code in the description for `get_post_type_labels()`
* Various markdown formatting in the description for `add_rewrite_endpoint()`
* Markdown-indent a code snippet in the file header for wp-includes/shortcodes.php
* Markdown-indent code snippets in the description for `add_shortcode()

Props rarst.
See #30473.

Built from https://develop.svn.wordpress.org/trunk@30545


git-svn-id: http://core.svn.wordpress.org/trunk@30534 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-11-24 06:15:24 +00:00
Mark Jaquith 0d3b83551f Use HTTPS URLs for core.trac.wordpress.org
see #27115
Built from https://develop.svn.wordpress.org/trunk@29788


git-svn-id: http://core.svn.wordpress.org/trunk@29560 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-09-29 13:28:16 +00:00
Scott Taylor affe27e5d1 `WP_Query` was only missing one access modifier.
Add access modifier (`public`) to applicable class methods/members of `WP_Rewrite`. I am not brave enough to set some of the `var`s to `private` without more testing.

See #27881, #22234.

Built from https://develop.svn.wordpress.org/trunk@28533


git-svn-id: http://core.svn.wordpress.org/trunk@28359 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-05-19 17:41:13 +00:00
Drew Jaynes f52aefd02b Fix PHPDoc formatting for `WP_Rewrite::add_endpoint()`.
See #27700.

Built from https://develop.svn.wordpress.org/trunk@28014


git-svn-id: http://core.svn.wordpress.org/trunk@27844 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-04-07 21:39:15 +00:00
Andrew Nacin bc12ccf41b Rewrite: Use same delimiter in url_to_postid() we use in WP::parse_request().
props stevenkword.
fixes #23587. 

Built from https://develop.svn.wordpress.org/trunk@27835


git-svn-id: http://core.svn.wordpress.org/trunk@27669 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-29 05:18:15 +00:00
Drew Jaynes 9b3c090d71 Fix a typo in the `author_rewrite_rules` hook doc.
Props kpdesign.
See #26095.

Built from https://develop.svn.wordpress.org/trunk@27346


git-svn-id: http://core.svn.wordpress.org/trunk@27198 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-02 02:50:14 +00:00
Drew Jaynes df8be5ee43 Inline documentation for hooks in wp-includes/rewrite.php.
Props mboynes for the initial patch.
Fixes #26095.

Built from https://develop.svn.wordpress.org/trunk@27341


git-svn-id: http://core.svn.wordpress.org/trunk@27193 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-01 09:31:15 +00:00
John Blackbourn 2739d652ef Allow rewrite endpoints to specify a query variable name. Fixes #20905.
Built from https://develop.svn.wordpress.org/trunk@27327


git-svn-id: http://core.svn.wordpress.org/trunk@27179 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-02-28 20:55:14 +00:00
Dion Hulse 7f1047ece1 Remove the experimental RSS.JS feed, and move it to a plugin for feature development. Unprops pento. See #25639
Built from https://develop.svn.wordpress.org/trunk@26644


git-svn-id: http://core.svn.wordpress.org/trunk@26534 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-12-04 22:24:10 +00:00
Andrew Nacin c8bbc31c39 Add an experimental rssjs feed based on the experimental rss.js spec.
This is simply a JSON representation of the RSS 2.0 feed, accessible at /feed/rssjs/ anywhere.

props pento.
see #25639.

Built from https://develop.svn.wordpress.org/trunk@26294


git-svn-id: http://core.svn.wordpress.org/trunk@26199 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-11-20 22:58:09 +00:00
Scott Taylor e3d58a5b23 Make `url_to_postid()` work for custom post type URLs. Use `get_post_types()` and `get_taxonomies()` instead of directly accessing globals. Adds unit test.
Props faishal, for the globals fix.
Fixes #19744.


Built from https://develop.svn.wordpress.org/trunk@25659


git-svn-id: http://core.svn.wordpress.org/trunk@25576 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-02 19:42:09 +00:00
Andrew Nacin 205a4d583d Add documentation for the new flush_rewrite_rules_hard filter. fixes #23491.
Built from https://develop.svn.wordpress.org/trunk@25464


git-svn-id: http://core.svn.wordpress.org/trunk@25385 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-09-16 22:00:09 +00:00
Scott Taylor 2f267f6a2a Add filter `flush_rewrite_rules_hard` to give devs chance to prevent writing to file when hard-flushing rewrite rules.
Props jeremyfelt, nacin.
Fixes #23491.


Built from https://develop.svn.wordpress.org/trunk@25328


git-svn-id: http://core.svn.wordpress.org/trunk@25290 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-09-10 22:19:09 +00:00
Scott Taylor dd7a6d66af Only variables should be passed by reference.
Props Askapache.
Fixes #23032.


Built from https://develop.svn.wordpress.org/trunk@25263


git-svn-id: http://core.svn.wordpress.org/trunk@25231 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-09-05 21:53:09 +00:00
Scott Taylor d03b6f9df5 Avoids incorrect results when `url_to_postid()` checking is not strict enough. Adds a bunch of Unit Tests for `url_to_postid()', which is currently only tested lightly in some XML-RPC tests.
Props gcorne, gradyetc.
Fixes #20560.


Built from https://develop.svn.wordpress.org/trunk@25258


git-svn-id: http://core.svn.wordpress.org/trunk@25226 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-09-05 17:29:13 +00:00
Jon Cave b0f446b5ba Introduce a new endpoint mask for all archives, fixes #16303.
git-svn-id: http://core.svn.wordpress.org/trunk@24812 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-07-28 19:18:19 +00:00
Jon Cave dffea4e020 Drop leading / by retrieving the inner subpattern when matching attachment endpoints.
Fixes #22619


git-svn-id: http://core.svn.wordpress.org/trunk@24809 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-07-28 19:02:08 +00:00
Andrew Nacin 17ddaa8de0 delete_user_setting() and remove_action() were getting called with too many args. props rlerdorf. see #24210.
git-svn-id: http://core.svn.wordpress.org/trunk@24125 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-04-29 13:25:15 +00:00
Andrew Nacin bf4d00e320 Remove bogus pagination rules from the comments permastruct. (As in, comments/page/?([0-9]{1,})/?$.) props wonderboymusic, fixes #21138.
git-svn-id: http://core.svn.wordpress.org/trunk@23524 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-02-28 18:35:13 +00:00
Mark Jaquith a24c40fb00 Consistently use $wp_rewrite->index instead of hardcoding "index.php".
props wonderboymusic. fixes #7337

git-svn-id: http://core.svn.wordpress.org/trunk@23305 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-01-18 13:44:22 +00:00
Andrew Nacin a79310d45c Update the old wp-app.php rule to allow for a trailing slash followed by endpoint data. props wonderboymusic. fixes #22035.
git-svn-id: http://core.svn.wordpress.org/trunk@22441 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-11-07 21:27:02 +00:00
Ryan Boren 8bb0fc5079 Revert [22365]. see #21167
git-svn-id: http://core.svn.wordpress.org/trunk@22403 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-11-06 19:45:51 +00:00
Jon Cave 86d88f8b2d Actually pass old permalink structure with permalink_structure_changed action
Props doublesharp. Fixes #22351.


git-svn-id: http://core.svn.wordpress.org/trunk@22398 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-11-06 12:41:33 +00:00
Ryan Boren c0274c4fa7 preg_quote() the permalink structure so that regex special chars such as dots are correctly handled. Props SergeyBiryukov. fixes #21167
git-svn-id: http://core.svn.wordpress.org/trunk@22365 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-11-05 14:13:29 +00:00
Mark Jaquith e3dc0220ff Make Multisite work when WordPress is installed in a subdirectory. You can now have WordPress Multisite as an SVN external or a Git submodule! props johnjamesjacoby, evansolomon, duck_, jakemgold, nacin, markjaquith. see #19796
git-svn-id: http://core.svn.wordpress.org/trunk@22042 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-09-27 06:07:21 +00:00
Andrew Nacin dc49f24a6c Remove ms-files.php rewriting from WordPress multisite. fixes #19235.
Keep existing networks compatible with a ms_files_rewriting network option.



git-svn-id: http://core.svn.wordpress.org/trunk@21823 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-09-11 22:22:20 +00:00
Andrew Nacin fffed3c5d2 Remove accidental cruft in [21804] caused by renaming variables. see #21509.
git-svn-id: http://core.svn.wordpress.org/trunk@21819 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-09-11 20:15:56 +00:00