Commit Graph
74 Commits
Author SHA1 Message Date
Jonathan Desrosiers 2e78177467 Nav Menus: Fix a PHP 7.3 error when switching themes.
When switching themes, `wp_map_nav_menu_locations()` is used to ensure nav menus are placed in the relevant menu location. Occasionally, menus are registered to locations with numeric slugs, rather than strings. `wp_map_nav_menu_locations()` assumed it would be the latter, and ran `stripos()` on those numeric slugs. This behavior is deprecated in PHP 7.3.

As this is the last PHP 7.3 error in unit tests, this commit also removes PHP 7.3 from Travis' `allowed_failures` list.

Props pento, desrosj, jorbin.

Merges [43899] to trunk.

See #45018.

git-svn-id: https://develop.svn.wordpress.org/trunk@44167 602fd350-edb4-49c9-b593-d223f7449a82
2018-12-14 05:15:54 +00:00
Gary Pendergast a75d153eee Coding Standards: Upgrade WPCS to 1.0.0
WPCS 1.0.0 includes a bunch of new auto-fixers, which drops the number of coding standards issues across WordPress significantly. Prior to running the auto-fixers, there were 15,312 issues detected. With this commit, we now drop to 4,769 issues.

This change includes three notable additions:
- Multiline function calls must now put each parameter on a new line.
- Auto-formatting files is now part of the `grunt precommit` script. 
- Auto-fixable coding standards issues will now cause Travis failures.

Fixes #44600.



git-svn-id: https://develop.svn.wordpress.org/trunk@43571 602fd350-edb4-49c9-b593-d223f7449a82
2018-08-17 01:50:26 +00:00
Sergey Biryukov 534f096302 Menus: Remove $_menu_item_sort_prop global reference from wp_get_nav_menu_items(), unused since [38928].
Props PieWP, welcher.
Fixes #40947.

git-svn-id: https://develop.svn.wordpress.org/trunk@42634 602fd350-edb4-49c9-b593-d223f7449a82
2018-02-01 15:41:55 +00:00
Gary Pendergast 8f95800d52 Code is Poetry.
WordPress' code just... wasn't.
This is now dealt with.

Props jrf, pento, netweb, GaryJ, jdgrimes, westonruter, Greg Sherwood from PHPCS, and everyone who's ever contributed to WPCS and PHPCS.
Fixes #41057.



git-svn-id: https://develop.svn.wordpress.org/trunk@42343 602fd350-edb4-49c9-b593-d223f7449a82
2017-11-30 23:09:33 +00:00
Gary Pendergast 574821573a General: Fix some precision alignment formatting warnings.
The WPCS `WordPress.WhiteSpace.PrecisionAlignment` rule throws warnings for a bunch of code that will likely cause issues for `wpcbf`. Fixing these manually beforehand gives us better auto-fixed results later.

See #41057.



git-svn-id: https://develop.svn.wordpress.org/trunk@42228 602fd350-edb4-49c9-b593-d223f7449a82
2017-11-26 23:56:25 +00:00
Konstantin Obenland 2ddcc549d2 Menus: Add menu-$i slugs to mapping groups
Helps to future proof the feature.
Also orders slugs by popularity to optimize mapping time.

See #39692.


git-svn-id: https://develop.svn.wordpress.org/trunk@42026 602fd350-edb4-49c9-b593-d223f7449a82
2017-10-25 22:28:43 +00:00
westonruter d5e4547ef9 Menus: Don't prime nav menu items cache if a persistent cache is being used.
Amends [14560].
Props david.binda.
See #12734.
Fixes #41662.


git-svn-id: https://develop.svn.wordpress.org/trunk@41982 602fd350-edb4-49c9-b593-d223f7449a82
2017-10-23 22:39:02 +00:00
Weston Ruter ce7a93c235 Customize: Allow post/page stubs to be edited in WP Admin as "customization drafts" when changeset is saved as draft or scheduled.
* Update stubs to have draft status when changeset is saved as draft, instead of preventing auto-draft garbage collection by giving them a far-future `post_date`.
* Show notice in publish metabox when editing a customization draft indicating that it will be published automatically with its changeset; a link to Customizer is included.
* Include a new "Customization Draft" display post state in the post list table.
* Disconnect stubs from their changesets when they are updated with a status other than "Draft".
* Trash customization drafts when their related changeset is trashed or deleted.
* Add a `_customize_changeset_uuid` postmeta to stubs to link them with their associated changeset.
* Include `customize_changeset_uuid` as context when requesting to insert a new auto-draft.

Props westonruter, melchoyce.
See #39896, #39752, #34923.
Fixes #42220.


git-svn-id: https://develop.svn.wordpress.org/trunk@41887 602fd350-edb4-49c9-b593-d223f7449a82
2017-10-17 20:14:56 +00:00
Konstantin Obenland b02beaf298 Menus: Limit mapping to registered locations
Weeds out orphaned locations, so their information will not continue to be mapped to future themes.

Fixes #42121.


git-svn-id: https://develop.svn.wordpress.org/trunk@41811 602fd350-edb4-49c9-b593-d223f7449a82
2017-10-10 17:07:31 +00:00
Konstantin Obenland 2ab27649f6 Menus: Add social as tertiary mapping group
Allows mapping of all social menus that include the term `social` in their slug.

See #39692.


git-svn-id: https://develop.svn.wordpress.org/trunk@41801 602fd350-edb4-49c9-b593-d223f7449a82
2017-10-09 21:22:57 +00:00
Sergey Biryukov cfe1b4476b Menus: Introduce wp_get_nav_menu_name() to retrieve the name of a navigation menu as set in the admin.
Props markoheijnen, christophherr, SpencerFinnell, wojtek.szkutnik, sagarprajapati, welcher, SergeyBiryukov.
Fixes #13910.

git-svn-id: https://develop.svn.wordpress.org/trunk@41766 602fd350-edb4-49c9-b593-d223f7449a82
2017-10-05 01:37:39 +00:00
Konstantin Obenland d339af1bc1 Map nav menu locations on theme switch
This will send nav menu locations through three levels of mapping:
1. If both themes have only one location, that gets mapped.
2. If both themes have locations with the same slug, they get mapped.
3. Locations that (even partially) match slugs from a similar kind of menu location will get mapped.

Menu locations are mapped for Live Previews in the Customizer and during theme switches.

Props westonruter, obenland, welcher, melchoyce.
Fixes #39692.



git-svn-id: https://develop.svn.wordpress.org/trunk@41237 602fd350-edb4-49c9-b593-d223f7449a82
2017-08-09 21:03:16 +00:00
Drew Jaynes 8d783f1275 Docs: Clarify accepted types and values for $menu parameters in several contexts:
* `wp_nav_menu()`
* `wp_get_nav_menu_object()` and its filter `wp_get_nav_menu_object`
* `is_nav_menu()`
* `wp_delete_nav_menu()`
* `wp_get_nav_menu_items()`

Props dimadin.
Fixes #38166.


git-svn-id: https://develop.svn.wordpress.org/trunk@40969 602fd350-edb4-49c9-b593-d223f7449a82
2017-06-30 04:48:20 +00:00
Drew Jaynes 9b91a663df Docs: Add full documentation for arguments accepted by wp_get_nav_menu_items().
Also provide differentiation between arguments as passed to `get_posts()` vs used for ordering outputted menu items.

By and large, arguments in the `$args` array are intended to directly affect how nav_menu_item posts are retrieved. When the default ARRAY_A is used for 'output', the 'order' and 'orderby' arguments are essentially ignored, instead giving preference to a hard-coded order of 'ASC' and an orderby value derived from the non-get_posts() argument 'output_key'.

Fixes #15533.


git-svn-id: https://develop.svn.wordpress.org/trunk@40942 602fd350-edb4-49c9-b593-d223f7449a82
2017-06-25 19:36:45 +00:00
Weston Ruter 77fe870bd5 Customize: Keep alive auto-drafts created for page/post stubs when parent changeset is updated, and delete when changeset is garbage-collected.
Props utkarshpatel, westonruter.
See #31089.
Fixes #39715.


git-svn-id: https://develop.svn.wordpress.org/trunk@40676 602fd350-edb4-49c9-b593-d223f7449a82
2017-05-16 05:36:25 +00:00
John Blackbourn 5f645d2f34 Docs: Add and correct @since docs for a variety of functions and methods.
Props keesiemeijer, chris_dev
Fixes #39343, #39357, #39344
See #39130


git-svn-id: https://develop.svn.wordpress.org/trunk@39638 602fd350-edb4-49c9-b593-d223f7449a82
2016-12-27 09:20:11 +00:00
Dominik Schilling (ocean90) ad25902a65 General: Introduce a wp_list_sort() helper function, v2.
In addition to `wp_list_filter()` for filtering a list of objects, and `wp_list_pluck()` for plucking a certain field out of each object in a list, this new function can be used for sorting a list of objects by specific fields. These functions are now all contained within the new `WP_List_Util()` class and `wp_list_sort()` is used in various parts of core for sorting lists.

This was previously committed in [38859] but got reverted in [38862] and [38863]. To fix the previous issues, `wp_list_sort()` supports now an additional argument to preserve array keys via `uasort()`.

Props flixos90, DrewAPicture, jorbin.
Fixes #37128.

git-svn-id: https://develop.svn.wordpress.org/trunk@38928 602fd350-edb4-49c9-b593-d223f7449a82
2016-10-25 21:25:25 +00:00
Dominik Schilling (ocean90) ef43d7b0fa Revert [38859] due to an incomplete implementation.
See https://core.trac.wordpress.org/ticket/37128#comment:27.
See #37128.

git-svn-id: https://develop.svn.wordpress.org/trunk@38863 602fd350-edb4-49c9-b593-d223f7449a82
2016-10-21 17:00:29 +00:00
Pascal Birchler e4cbb7d031 General: Introduce a wp_list_sort() helper function.
In addition to `wp_list_filter()` for filtering a list of objects, and `wp_list_pluck()` for plucking a certain field out of each object in a list, this new function can be used for sorting a list of objects by specific fields. These functions are now all contained within the new `WP_List_Util()` class and `wp_list_sort()` is used in various parts of core for sorting lists.

Props flixos90, DrewAPicture, jorbin.
Fixes #37128.

git-svn-id: https://develop.svn.wordpress.org/trunk@38859 602fd350-edb4-49c9-b593-d223f7449a82
2016-10-21 11:11:42 +00:00
Pascal Birchler f683e9aae1 Menus: Do not show trashed posts in nav menus.
Trashed posts cannot be accessed by site visitors and thus should not be visible on the front end. By marking menu items of trashed posts as invalid, they are excluded from the output.

Props solarissmoke, swissspidy.
Fixes #19038.

git-svn-id: https://develop.svn.wordpress.org/trunk@38744 602fd350-edb4-49c9-b593-d223f7449a82
2016-10-07 16:49:19 +00:00
John Blackbourn 87c1b26ee7 Docs: Correct various documentation around object and stdClass types.
See #37770


git-svn-id: https://develop.svn.wordpress.org/trunk@38369 602fd350-edb4-49c9-b593-d223f7449a82
2016-08-26 16:48:17 +00:00
Drew Jaynes 01bfb1342b Docs: Improve the summaries and return descriptions for get_registered_nav_menus() and get_nav_menu_locations().
Props rabmalin for the initial patch.
Fixes #37106.


git-svn-id: https://develop.svn.wordpress.org/trunk@37752 602fd350-edb4-49c9-b593-d223f7449a82
2016-06-20 08:25:16 +00:00
Drew Jaynes d11f7ed391 Docs: Standardize filter docs in remaining wp-includes/* files to use third-person singular verbs per the inline documentation standards for PHP.
See #36913.


git-svn-id: https://develop.svn.wordpress.org/trunk@37518 602fd350-edb4-49c9-b593-d223f7449a82
2016-05-22 18:49:05 +00:00
Drew Jaynes c7bed4f8c6 Docs: Remove inline @see tags from function, class, and method references in inline docs.
Known functions, classes, and methods are now auto-linked in Code Reference pages following #meta1483.

Note: Hook references are still linked via inline `@see` tags due to the unlikelihood of reliably matching for known hooks based on a RegEx pattern.

See #32246.


git-svn-id: https://develop.svn.wordpress.org/trunk@37342 602fd350-edb4-49c9-b593-d223f7449a82
2016-05-02 03:59:56 +00:00
Drew Jaynes f07f2252fe Menus: Avoid a notice when outputting a description for an existing archive menu item for a post type that doesn't.
Props bradyvercher.
See [36859]. Fixes #35324.


git-svn-id: https://develop.svn.wordpress.org/trunk@36888 602fd350-edb4-49c9-b593-d223f7449a82
2016-03-08 18:24:50 +00:00
Aaron Jorbin 4af0645ae8 Ensure Description is respected in post type archive menu items.
Tested scenarios include: using the default (which is the post type description), Setting a custom description for that individual menu item, and setting a custom description that is blank. Introduced in r35382.

Props Toro_Unit, mayukojpn, extendwings, jorbin.
Fixes #35324. See #16075.



git-svn-id: https://develop.svn.wordpress.org/trunk@36859 602fd350-edb4-49c9-b593-d223f7449a82
2016-03-05 22:56:31 +00:00
Dominik Schilling (ocean90) 9a7488aaf8 Spelling: Standardize on "front end"/"back end" (noun) and "front-end"/"back-end" (adjective).
Props obrienlabs, thewanderingbrit.
Fixes #34887.

git-svn-id: https://develop.svn.wordpress.org/trunk@36709 602fd350-edb4-49c9-b593-d223f7449a82
2016-02-25 12:52:33 +00:00
Weston Ruter 773151a9bf Docs: Use markdown instead of HTML for code formatting.
Fixes phpdoc usage in [36622], [36608], [35724], [35307].

See #35898.
See #35869.
See #34738.
See #33552.


git-svn-id: https://develop.svn.wordpress.org/trunk@36645 602fd350-edb4-49c9-b593-d223f7449a82
2016-02-23 19:17:11 +00:00
Weston Ruter d14b188c42 Customize: Prevent dropping backslashes from input on general settings and settings for nav menus and some widgets.
Ensures that intentional backslashes (e.g. "\o/") can be used in:

* Site title
* Site description
* Nav menu name
* Custom Menu widget title
* Tag Cloud widget title
* Text widget body if can't `unfiltered_html`

The latter three are also fixed on the widgets admin page.

Fixes #35898.


git-svn-id: https://develop.svn.wordpress.org/trunk@36622 602fd350-edb4-49c9-b593-d223f7449a82
2016-02-23 01:01:43 +00:00
Weston Ruter d06329d035 Customize: Fix previewing and updating of nav menu items containing slashed/slashable characters.
Prevents slashes from being added when a user without `unfiltered_html` previews a nav menu item containing an apostrophe or some other slashable character, and prevents the loss of an intentional slash (e.g. "\o/") when saving a nav menu item, regardless of capability.

Fixes #35869.


git-svn-id: https://develop.svn.wordpress.org/trunk@36608 602fd350-edb4-49c9-b593-d223f7449a82
2016-02-22 00:13:53 +00:00
Drew Jaynes 3a0050346b Docs: Update several function DocBlock summaries in wp-includes/nav-menu.php to use third-person singular verbs.
Also removes some unnecessary capitalizations.

See #32246.


git-svn-id: https://develop.svn.wordpress.org/trunk@36496 602fd350-edb4-49c9-b593-d223f7449a82
2016-02-07 02:17:29 +00:00
Eric Andrew Lewis a3dda7e716 Docs: Nav menu location functions relate to nav menu locations, not nav menus.
Fixes #35471.


git-svn-id: https://develop.svn.wordpress.org/trunk@36330 602fd350-edb4-49c9-b593-d223f7449a82
2016-01-17 01:42:16 +00:00
Dominik Schilling (ocean90) 3f5fab4a0e Nav Menus: Apply the the_title filter on original post titles in wp_setup_nav_menu_item().
The filter is already used in `Walker_Nav_Menu_Checklist` and `Walker_Nav_Menu_Edit`. This ensures that titles are consistent across the admin and front end.

Fixes #35317.

git-svn-id: https://develop.svn.wordpress.org/trunk@36174 602fd350-edb4-49c9-b593-d223f7449a82
2016-01-05 16:26:53 +00:00
Dion Hulse 0df95091ee Nav Menus: Avoid a PHP Notice when a menu contains a now unregistered post type archive.
Props kucrut.
Fixes #34449 for trunk.


git-svn-id: https://develop.svn.wordpress.org/trunk@36095 602fd350-edb4-49c9-b593-d223f7449a82
2015-12-26 04:04:55 +00:00
Drew Jaynes 6135b8d055 Docs: Clarify the summary and add missing parameter notations to the DocBlock for _wp_delete_tax_menu_item().
See #32246.


git-svn-id: https://develop.svn.wordpress.org/trunk@35979 602fd350-edb4-49c9-b593-d223f7449a82
2015-12-16 23:10:47 +00:00
Sergey Biryukov 4bca320a77 Don't use <strong> in translatable string in wp-includes/nav-menu.php.
Add translator commment.

Props ramiy.
Fixes #34505.

git-svn-id: https://develop.svn.wordpress.org/trunk@35452 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-30 08:56:36 +00:00
Scott Taylor a18feed6bd Nav Menus: show custom post type Archive item at the top of the View All tab for the post type on the legacy Nav Menu screen.
Props aaroncampbell, DrewAPicture, seanchayes, hlashbrooke, paulwilde, ericlewis, raulillana
See #16075.


git-svn-id: https://develop.svn.wordpress.org/trunk@35382 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-24 17:45:11 +00:00
Drew Jaynes 0fcc70b853 Introduce the wp_add_nav_menu_item action, fired immediately after a new nav menu item has been added.
This hook can be leveraged both for the legacy menus interface and the menus integration in the Customizer, as both use the containing function, `wp_update_nav_menu_item()`.

Props MikeHansenMe, tyxla.
Fixes #30983.


git-svn-id: https://develop.svn.wordpress.org/trunk@34769 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-02 06:45:32 +00:00
Scott Taylor 3b8c5529cb foreach is a statement, not a function.
See #33491.


git-svn-id: https://develop.svn.wordpress.org/trunk@33734 602fd350-edb4-49c9-b593-d223f7449a82
2015-08-25 20:27:56 +00:00
Boone Gorges ee67bd08f9 When splitting a shared 'nav_menu' term, ensure that nav items and theme locations are retained.
Props boonebgorges, dd32.
Fixes #33187.

git-svn-id: https://develop.svn.wordpress.org/trunk@33611 602fd350-edb4-49c9-b593-d223f7449a82
2015-08-12 14:06:21 +00:00
Weston Ruter dbcb95c022 Customizer: Ensure that all existing menus are shown in the Custom Menu widget's dropdown.
* Ensure that a Custom Menu widget selecting a newly-inserted menu gets updated to use the new menu ID upon Save & Publish.
* Dynamically update the visibility of the Custom Menu widget's "no menus" message when the number of menus changes between 0 and 1+.
* Send all dirty Customized settings in `update-widget` Ajax request and `preview()` them so that the widget update/form callbacks have access to any data dependencies in the current Customizer session (such as newly created unsaved menus).
* Update link in Custom Menu widget to point to Menus panel as opposed to Menus admin page, when in the Customizer.
* Fix an issue with extra space at top immediately after creating new menu.
* Fix doubled `update-widget` Ajax requests when changing select dropdown; prevent initial from being aborted.
* Add missing `wp_get_nav_menus()` hooks to preview Customizer updates/inserts for `nav_menu` settings; includes tests.
* Update `wp_get_nav_menu_object()` to allow a menu object to be passed in (and thus passed through).

Props westonruter, adamsilverstein.
Fixes #32814.


git-svn-id: https://develop.svn.wordpress.org/trunk@33488 602fd350-edb4-49c9-b593-d223f7449a82
2015-07-29 16:02:08 +00:00
Aaron Jorbin 385b98d828 Use explicit variable variable syntax
PHP7 introduces a backwards compatable change to variable varibale syntax that requires us to use curly brackets to maintain the syntax between php5 and php7.  For more info, see https://wiki.php.net/rfc/uniform_variable_syntax#semantic_differences_in_existing_syntax for the semantic differences.  

Props ocean90
Fixes #31982



git-svn-id: https://develop.svn.wordpress.org/trunk@33427 602fd350-edb4-49c9-b593-d223f7449a82
2015-07-26 18:03:58 +00:00
Weston Ruter 65f5a16611 Customizer: Improve performance of menus by caching results of wp_setup_nav_menu_item() calls.
Also fixes property list in phpdoc for `wp_setup_nav_menu_item()`.

Fixes #32769.


git-svn-id: https://develop.svn.wordpress.org/trunk@33256 602fd350-edb4-49c9-b593-d223f7449a82
2015-07-14 07:08:40 +00:00
Drew Jaynes 8dee1379bd Fix the parameter description syntax in the hook docs for the wp_get_nav_menu_object filter, added in 4.3.
See #32891.


git-svn-id: https://develop.svn.wordpress.org/trunk@33232 602fd350-edb4-49c9-b593-d223f7449a82
2015-07-13 21:44:07 +00:00
Dominik Schilling (ocean90) 5f9ef8fed3 Customizer: Improve handling of posts with no title.
Use the `#%d (no title)` string as a fallback which is already used on the nav menus screen.
Add a translator comment to all occurrences of the `#%d (no title)` string.

see #32576.

git-svn-id: https://develop.svn.wordpress.org/trunk@32892 602fd350-edb4-49c9-b593-d223f7449a82
2015-06-20 19:49:43 +00:00
Dominik Schilling (ocean90) c6bf4b951b Nav menus: Introduce a wp_get_nav_menu_object filter in wp_get_nav_menu_object() to filter the retrieved nav_menu term.
props westonruter.
fixes #32629.

git-svn-id: https://develop.svn.wordpress.org/trunk@32764 602fd350-edb4-49c9-b593-d223f7449a82
2015-06-14 17:36:21 +00:00
Dominik Schilling (ocean90) 0f9c75f614 Nav Menus: Update wp_setup_nav_menu_item() to stop overriding empty properties from supplied $menu_item.
Update docs for `WP_Post` constructor to indicate that `WP_Post|object` can be the supplied param, as opposed to just `WP_Post`.

props westonruter.
fixes #32632.

git-svn-id: https://develop.svn.wordpress.org/trunk@32762 602fd350-edb4-49c9-b593-d223f7449a82
2015-06-14 10:52:35 +00:00
Dominik Schilling (ocean90) 1e9781a945 Nav menus: Apply the wp_get_nav_menu_items filter also on an empty list of menu items.
props westonruter.
fixes #32631.

git-svn-id: https://develop.svn.wordpress.org/trunk@32748 602fd350-edb4-49c9-b593-d223f7449a82
2015-06-13 14:37:25 +00:00
Dominik Schilling (ocean90) 2ac1bec5ca Nav menu: Introduce a has_nav_menu filter in has_nav_menu() to filter whether a nav menu is assigned to a specified location.
props westonruter.
fixes #32630.

git-svn-id: https://develop.svn.wordpress.org/trunk@32746 602fd350-edb4-49c9-b593-d223f7449a82
2015-06-13 14:14:42 +00:00
Scott Taylor a418d57c5a Fix doc blocks for nav-menu*.php files.
See #32444.


git-svn-id: https://develop.svn.wordpress.org/trunk@32612 602fd350-edb4-49c9-b593-d223f7449a82
2015-05-26 22:09:26 +00:00