Commit Graph

140 Commits

Author SHA1 Message Date
Sergey Biryukov
1ce5dc7444 Code Modernization: Replace usage of strpos() with str_contains().
`str_contains()` was introduced in PHP 8.0 to perform a case-sensitive check indicating if the string to search in (haystack) contains the given substring (needle).

WordPress core includes a polyfill for `str_contains()` on PHP < 8.0 as of WordPress 5.9.

This commit replaces `false !== strpos( ... )` with `str_contains()` in core files, making the code more readable and consistent, as well as better aligned with modern development practices.

Follow-up to [52039], [52040], [52326], [55703], [55710], [55987].

Props Soean, spacedmonkey, costdev, dingo_d, azaozz, mikeschroder, flixos90, peterwilsoncc, SergeyBiryukov.
Fixes #58206.
Built from https://develop.svn.wordpress.org/trunk@55988


git-svn-id: http://core.svn.wordpress.org/trunk@55500 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2023-06-22 14:36:26 +00:00
Sergey Biryukov
2ec23a82ed Code Modernization: Replace usage of strpos() with str_starts_with().
`str_starts_with()` was introduced in PHP 8.0 to perform a case-sensitive check indicating if the string to search in (haystack) begins with the given substring (needle).

WordPress core includes a polyfill for `str_starts_with()` on PHP < 8.0 as of WordPress 5.9.

This commit replaces `0 === strpos( ... )` with `str_starts_with()` in core files, making the code more readable and consistent, as well as improving performance.

While `strpos()` is slightly faster than the polyfill on PHP < 8.0, `str_starts_with()` is noticeably faster on PHP 8.0+, as it is optimized to avoid unnecessarily searching along the whole haystack if it does not find the needle.

Follow-up to [52039], [52040], [52326].

Props spacedmonkey, costdev, sabernhardt, mukesh27, desrosj, jorbin, TobiasBg, ayeshrajans, lgadzhev, SergeyBiryukov.
Fixes #58012.
Built from https://develop.svn.wordpress.org/trunk@55703


git-svn-id: http://core.svn.wordpress.org/trunk@55215 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2023-05-02 15:45:22 +00:00
Sergey Biryukov
ba864b2792 Administration: Restore the correct escaping function for base64-encoded SVG icons in the admin menu.
Add a comment to clarify the `esc_attr()` usage instead of `esc_url()`.

Follow-up to [53050].

Props KProvance, kebbet, w33zy, ocean90, mukesh27.
Fixes #55539.
Built from https://develop.svn.wordpress.org/trunk@53092


git-svn-id: http://core.svn.wordpress.org/trunk@52681 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2022-04-07 12:54:03 +00:00
Sergey Biryukov
f2e14d4e5f Docs: Add missing description for $typenow global in various functions.
Follow-up to [53060].

See #54729.
Built from https://develop.svn.wordpress.org/trunk@53061


git-svn-id: http://core.svn.wordpress.org/trunk@52650 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2022-04-04 18:39:01 +00:00
Sergey Biryukov
35ce94f930 Administration: Consistently escape icon URLs in the admin menu.
Follow-up to [9154], [26664].

Props chintan1896, jigar-bhanushali, mukesh27.
Fixes #55496.
Built from https://develop.svn.wordpress.org/trunk@53050


git-svn-id: http://core.svn.wordpress.org/trunk@52639 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2022-04-01 11:46:04 +00:00
Sergey Biryukov
0e3147c40e Coding Standards: Replace alias PHP functions with the canonical names.
Using the canonical function name for PHP functions is strongly recommended, as aliases may be deprecated or removed without (much) warning.

This replaces all uses of the following:
* `join()` with `implode()`
* `sizeof()` with `count()`
* `is_writeable()` with `is_writable()`
* `doubleval()` with a `(float)` cast

In part, this is a follow-up to #47746.

Props jrf.
See #50767.
Built from https://develop.svn.wordpress.org/trunk@49193


git-svn-id: http://core.svn.wordpress.org/trunk@48955 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-10-18 17:27:06 +00:00
desrosj
04c8217724 Administration: Add the aria-hidden attribute to admin menu icons.
The admin menu icons are included as a visual element to support the text links. Without the `aria-hidden=“true”` attribute, they are also exposed to assistive technologies (which can process icon fonts in unpredictable ways).

This change improves the experience for multiple types of assistive technologies, including screen reading and voice control software. With `aria-hidden=“true”` added, the icons will not be read, and a user can now trigger a click of a top level admin menu item with commands such as “click posts”, or “click plugins”.

Props joedolson, afercia, audrasjb, adriantirusli.
Fixes #51012.
Built from https://develop.svn.wordpress.org/trunk@48963


git-svn-id: http://core.svn.wordpress.org/trunk@48725 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-09-09 16:15:06 +00:00
Sergey Biryukov
aa69c25d5f Coding Standards: Use strict comparison in some wp-admin files.
Props pikamander2, mukesh27, SergeyBiryukov.
Fixes #49239.
Built from https://develop.svn.wordpress.org/trunk@47785


git-svn-id: http://core.svn.wordpress.org/trunk@47561 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-05-12 18:32:08 +00:00
Sergey Biryukov
001ffe81fb Docs: Improve inline comments per the documentation standards.
Includes minor code layout fixes for better readability.

See #48303.
Built from https://develop.svn.wordpress.org/trunk@47122


git-svn-id: http://core.svn.wordpress.org/trunk@46922 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-01-29 00:45:18 +00:00
Gary Pendergast
cf3fa9f7c8 Coding Standards: Fix the Squiz.PHP.DisallowMultipleAssignments violations in wp-admin.
See #47632.


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


git-svn-id: http://core.svn.wordpress.org/trunk@45394 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-07-01 12:52:01 +00:00
Drew Jaynes
92aa2f9e92 Docs: Fix a few minor inline documentation typos in a variety of files and contexts.
Props ramizmanked.
Fixes #45463.

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


git-svn-id: http://core.svn.wordpress.org/trunk@44161 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-12-19 07:42:49 +00:00
Gary Pendergast
aaf99e6913 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.


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


git-svn-id: http://core.svn.wordpress.org/trunk@42172 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2017-11-30 23:11:00 +00:00
Andrea Fercia
d35be7a120 Administration: Admin menu: Use aria-current for the current active page.
The `aria-current` attribute is a simple, effective way to communicate to assistive
technologies which the current item within a set of items is. While the admin menu
structure isn't 100% ideal (the top-level item is repeated also as a sub-item)
adding `aria-current="page"` to the sub-items gives an important feedback to
assistive technologies users.

This change introduces `aria-current` for the first time in core. Worth noting
there are other places where it can be used to improve accessibility. These should
be addressed in separate tickets and patches.

Fixes #41589.

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


git-svn-id: http://core.svn.wordpress.org/trunk@41192 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2017-09-09 14:50:43 +00:00
Drew Jaynes
0401cee8b3 Docs: Reduce confusion in @since MU notationss by indicating the WP version (3.0.0) the code was merged into core while retaining the original context.
Props sathyapulse.
Fixes #41509.

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


git-svn-id: http://core.svn.wordpress.org/trunk@41040 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2017-08-01 20:44:43 +00:00
Aaron Jorbin
53c8c68365 Administration: Ensure collapse menu is usable with a keyboard
Currently, the "Collapse menu" item is not focusable and keyboard users can't collapse/expand the admin menu. This aims to fix it so that screen readers no longer announce it as a clickable but it remains unfocusable and thus unusable. So it's now a button.

Quoting joedolson at WordCamp Chicago 2014:
"If it's supposed to act like a button, it should be a button."

Also includes a grunt:precommit run that picked up some postcss changes to src/wp-includes/css/customize-preview.css

Fixes #29958.
Props ajercia, ipm-frommen for an iterative patch, valendesigns for an iterative patch, GaryJ for feedback, joedolson for feedback, helen for feedback



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


git-svn-id: http://core.svn.wordpress.org/trunk@39081 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-11-04 17:18:57 +00:00
Drew Jaynes
c3055cc190 Docs: Standardize hook docs in wp-admin/* to use third-person singular verbs per the inline documentation standards for PHP.
See #36913.

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


git-svn-id: http://core.svn.wordpress.org/trunk@37456 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-05-22 18:01:30 +00:00
Dominik Schilling
d8f3325c14 Docs: Correct grammar when referring to "a URL" vs "an URL" in several places.
Fixes #36218.
Built from https://develop.svn.wordpress.org/trunk@36970


git-svn-id: http://core.svn.wordpress.org/trunk@36938 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-03-12 12:39:27 +00:00
Drew Jaynes
3d6f53da06 Docs: Document declaration of the $submenu_file global in wp-admin/menu-header.php.
See #24531. See #32246.

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


git-svn-id: http://core.svn.wordpress.org/trunk@34689 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-01 01:48:25 +00:00
Drew Jaynes
2a0a841a13 Declare the $submenu_file global to avoid a notice generated by passing it as a parameter to the submenu_file hook, introduced in [34722].
Fixes #24531.

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


git-svn-id: http://core.svn.wordpress.org/trunk@34688 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-01 01:23:25 +00:00
Sergey Biryukov
145deeeada Add 'submenu_file' filter for the file of an admin menu sub-menu item.
This complements the `'parent_file'` filter added in [12712].

Props swissspidy, kraftbj.
Fixes #24531.
Built from https://develop.svn.wordpress.org/trunk@34722


git-svn-id: http://core.svn.wordpress.org/trunk@34686 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-01 00:23:28 +00:00
Scott Taylor
2518b37222 Admin menu: improve accessibility when collapsed.
Props afercia.
Fixes #32346.

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


git-svn-id: http://core.svn.wordpress.org/trunk@32917 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-06-25 19:33:26 +00:00
Scott Taylor
b56b9b3e5c Add @global annotations for wp-admin/*.
See #32444.

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


git-svn-id: http://core.svn.wordpress.org/trunk@32612 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-05-28 21:41:30 +00:00
Dominik Schilling
a7ba89b027 Accessibility: Add landmark roles to WordPress admin areas.
props afercia, joedolson.
fixes #31450.
Built from https://develop.svn.wordpress.org/trunk@31955


git-svn-id: http://core.svn.wordpress.org/trunk@31934 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-04-01 13:17:27 +00:00
Sergey Biryukov
137204b033 In _wp_menu_output(), $submenu_items is an array and should be initialized as such.
props ipm-frommen.
fixes #31257.
Built from https://develop.svn.wordpress.org/trunk@31364


git-svn-id: http://core.svn.wordpress.org/trunk@31345 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-02-07 17:57:24 +00:00
Scott Taylor
8ee598169f After [31105], don't ditch the isset() calls for BC. Declare $page_hook as null so it is initialized for all execution paths but will still fail isset() checks.
Fixes #30958.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31087 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-01-08 22:52:22 +00:00
Scott Taylor
60e1dd409b Properly declare $hook_suffix, $plugin_page, $typenow, and $taxnow as globals in wp-admin/admin.php.
Fixes #30958.

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


git-svn-id: http://core.svn.wordpress.org/trunk@31086 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-01-08 22:15:24 +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
Helen Hou-Sandí
ad646bc183 Accessibility: hide admin menu separators from screen readers.
props afercia. fixes #30010.

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


git-svn-id: http://core.svn.wordpress.org/trunk@30389 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-11-19 19:37:21 +00:00
Drew Jaynes
097dc8ee15 Fix syntax for single- and multi-line comments in wp-admin-directory files.
See #28931.

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


git-svn-id: http://core.svn.wordpress.org/trunk@28990 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-07-17 09:14:16 +00:00
Sergey Biryukov
2fa0de5f6f Avoid inadvertently adding admin page titles as classes for admin menu submenu items.
fixes #28817.
Built from https://develop.svn.wordpress.org/trunk@29083


git-svn-id: http://core.svn.wordpress.org/trunk@28869 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-07-11 01:10:15 +00:00
Helen Hou-Sandí
95deee2de5 Restore the ability to pass classes to admin menu submenu items, important for the Customize link. Accidentally left out in [24048]. fixes #28583.
Built from https://develop.svn.wordpress.org/trunk@28778


git-svn-id: http://core.svn.wordpress.org/trunk@28591 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-06-19 02:18:15 +00:00
Dominik Schilling
192afe238a Admin Menu: Use .dashicons-before as default $img_class.
props kovshenin for noticing and testing.
see #26630.
Built from https://develop.svn.wordpress.org/trunk@27425


git-svn-id: http://core.svn.wordpress.org/trunk@27272 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-05 23:22:15 +00:00
Dominik Schilling
d23cd0aa50 Introduce a .dashicons-before CSS class.
If you want to use a Dashicon before an element you can use the class because it will not change the elements content styling. With that you don't need to copy the entire `.dashicons` styling to your :before styling anymore.
To demonstrate this change, Admin Menu now uses Dashicons classes directly.

And it fixes a glitch in IE.

fixes #26630.
Built from https://develop.svn.wordpress.org/trunk@27418


git-svn-id: http://core.svn.wordpress.org/trunk@27265 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-05 20:04:14 +00:00
Sergey Biryukov
805d6fe59b Update comment about structure of items in $menu global.
props kitchin.
fixes #26635.
Built from https://develop.svn.wordpress.org/trunk@27151


git-svn-id: http://core.svn.wordpress.org/trunk@27018 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-02-09 21:43:12 +00:00
Drew Jaynes
cea5ae90f5 Inline documentation for hooks in wp-admin/menu-header.php.
Props piontkowski, kpdesign.
Fixes #26051.

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


git-svn-id: http://core.svn.wordpress.org/trunk@26776 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-01-02 02:46:12 +00:00
Helen Hou-Sandí
7f8584d37b More targeted background image styling for admin menu SVG icons. fixes #25147.
Built from https://develop.svn.wordpress.org/trunk@26671


git-svn-id: http://core.svn.wordpress.org/trunk@26561 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-12-05 17:53:10 +00:00
Andrew Nacin
9b29ad0529 Allow for Dashicons and base64-encoded data:image/svg+xml URIs when specifying menu icons.
Both of these icons can be colored to match the color scheme, including hover states.
Both are accepted for register_post_type()'s menu_icon argument, and also add_menu_page()'s $icon_url argument.

To use a Dashicon, pass the name of the helper class, e.g. 'dashicons-piechart'.
To use an SVG, pass a valid data URI string starting with 'data:image/svg+xml;base64,'.

props helen.
fixes #25147.

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


git-svn-id: http://core.svn.wordpress.org/trunk@26554 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-12-05 06:38:09 +00:00
Helen Hou-Sandí
70330d468c Remove now-unused #adminmenushadow. see #25858.
Built from https://develop.svn.wordpress.org/trunk@26182


git-svn-id: http://core.svn.wordpress.org/trunk@26091 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-11-14 23:49:10 +00:00
Andrew Nacin
82c4745df2 Remove unused variable. props jeremyfelt. fixes #24959.
git-svn-id: http://core.svn.wordpress.org/trunk@24975 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-08-05 21:38:24 +00:00
Mark Jaquith
e553e85ebb Remove $pagenow global from three functions that don’t use it.
Props jeremyfelt. Fixes #24920.

git-svn-id: http://core.svn.wordpress.org/trunk@24974 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-08-02 04:42:08 +00:00
Andrew Nacin
b11654ce74 Revert [23871] - Customize should be added to the menu, but not hacked in as first. see #21413.
git-svn-id: http://core.svn.wordpress.org/trunk@24048 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-04-22 19:33:39 +00:00
Mark Jaquith
8c4aeb9188 Add "Customize" as first item under Appearance menu.
fixes #21413. props ryanhellyer, obenland, DrewAPicture

git-svn-id: http://core.svn.wordpress.org/trunk@23871 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-03-29 20:39:54 +00:00
Sergey Biryukov
973985c2ce Prevent plugins with certain filenames from breaking links in the admin menu. props lightningspirit. fixes #22079.
git-svn-id: http://core.svn.wordpress.org/trunk@23656 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-03-09 02:48:49 +00:00
Ryan Boren
06ee370814 Pinking shears
git-svn-id: http://core.svn.wordpress.org/trunk@22634 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-11-17 15:11:29 +00:00
Andrew Ozz
b443373e8e Admin menu: add phpdoc/inline comments describing the usage of the param $icon_url in add_menu_page(), add string 'none' to be used when a menu icon is added from CSS, switch core items in the admin menu to use 'none', fixes #21349
git-svn-id: http://core.svn.wordpress.org/trunk@21877 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-09-16 22:51:44 +00:00
Andrew Ozz
0b92d7c941 Improve the layout and accessibility of the admin menu: simplify the HTML structure, move the submenus off the viewport (still visible for screen readers) instead of hiding them with display: none, make it possible to unfold the menu on small/narrow screens, see #21349
git-svn-id: http://core.svn.wordpress.org/trunk@21574 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-08-21 22:46:30 +00:00
azaozz
34535097b7 Remove nearly all tabindex attributes from the admin, leaving them only where absolutely necessary (for now that's only the toolbar).
Add tabindex="-1" for the menu images links to avoid double tab stops there when the menu is expanded.

Fix/add auto-focus on the first input fields on the Add/Edit Post, all taxonomy, all edit taxonomy, Log In and Edit Comment screens.

See #21340.

git-svn-id: http://core.svn.wordpress.org/trunk@21311 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-07-24 00:15:15 +00:00
azaozz
a0beb9a1d1 Admin menu: change to strip_tags() for the aria-label attributes as it's faster, fixes #20373
git-svn-id: http://core.svn.wordpress.org/trunk@20698 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-05-02 20:36:07 +00:00
azaozz
46839c23eb Admin menu: add aria-label attributes to the links around menu images for the sake of screen readers, fixes #20373
git-svn-id: http://core.svn.wordpress.org/trunk@20680 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-05-02 01:41:15 +00:00
azaozz
f6047c397e Remove role="menu" and role="menuitem" for now, fixes #19394
git-svn-id: http://svn.automattic.com/wordpress/trunk@19548 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2011-12-05 17:47:23 +00:00