187 Commits

Author SHA1 Message Date
Weston Ruter c59080381e Plugins: Improve hook performance by using spl_object_id() instead of spl_object_hash() to construct unique IDs.
* Also use `spl_object_id()` similarly when registering and unregistering classic widgets.
* Improve typing and phpdoc in `_wp_filter_build_unique_id()`. Return `null` for malformed callbacks.
* Add tests for `_wp_filter_build_unique_id()`.
* Improve type safety of `WP_Hook::add_filter()` in case an invalid callback is provided for parity with `::has_filter()` and `::remove_filter()`.

Developed in https://github.com/WordPress/wordpress-develop/pull/11865
Follow-up to r46220, r46801, r60179.

Props bor0, westonruter, SergeyBiryukov, schlessera, arshidkv12, knutsp, spacedmonkey, swissspidy.
See #64898.
Fixes #58291.

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


git-svn-id: http://core.svn.wordpress.org/trunk@61689 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-05-22 07:00:45 +00:00
gziolo 8e76f7215a Abilities API: Add execution lifecycle filters to WP_Ability methods
Introduce four filters that give plugins hook points across the ability execution lifecycle, complementing the existing observation-only actions
(`wp_before_execute_ability`, `wp_after_execute_ability`):

- `wp_pre_execute_ability`: short-circuits `execute()` when it returns a value other than the supplied default.
- `wp_ability_normalize_input`: transforms input inside `normalize_input()`, and returning `WP_Error` halts execution.
- `wp_ability_permission_result`: overrides the `permission_callback` result inside `check_permissions()`, consistently for `execute()` and direct callers.
- `wp_ability_execute_result`: transforms the result inside `do_execute()` before output validation, and can recover from execute callback failures.

The input and result filters fire before their respective schema validation steps, so `validate_input()` and `validate_output()` remain the final integrity gates. Only `wp_pre_execute_ability` can bypass validation, with the caller owning the returned value's shape.

Add `WP_Filter_Sentinel`, a reusable marker class loaded alongside `WP_Hook`, whose per-instance identity lets a filter default be distinguished from any
user value — including `null`, `false`, or arbitrary objects — via `===`.

Update `WP_REST_Abilities_V1_Run_Controller::check_ability_permissions()` to propagate `WP_Error` results from `normalize_input()` directly, defaulting to
status 400 while preserving filter-set statuses (e.g. 422, 429).

Props gziolo, westonruter, migueluy.
Fixes #64989.


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


git-svn-id: http://core.svn.wordpress.org/trunk@61678 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2026-05-21 07:57:42 +00:00
Weston Ruter c8ef6c5354 Plugins: Add missing $priority parameter to has_filter() and has_action().
This brings `has_filter()`/`has_action()` in parity with `add_filter()`/`add_action()` and `remove_filter()`/`remove_action()`, all of which support a `$priority` parameter.

Props westonruter, swissspidy.
Fixes #64186.
See #64178.

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


git-svn-id: http://core.svn.wordpress.org/trunk@60454 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-11-03 23:47:33 +00:00
Aaron Jorbin eb6737146a Plugins: Clarify documentation for when current_action and current_filter can return false.
If `current_action` or `current_filter` is called outside of an action/filter, then these functions will return false.

Props debarghyabanerjee, mukesh27, peterwilsoncc, SirLouen.
Fixes #63479.

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


git-svn-id: http://core.svn.wordpress.org/trunk@59594 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-05-27 15:53:29 +00:00
Sergey Biryukov 47a1161215 Coding Standards: Explicitly return null in _wp_filter_build_unique_id().
This commit updates the function to explicitly return `null` if a valid `$callback` is not passed. Previously, the function could return `void`, but was typed as only returning a string.

Follow-up to [5936], [11409], [12090], [46220], [46801], [50807], [52300].

Props justlevine.
See #63268.
Built from https://develop.svn.wordpress.org/trunk@60179


git-svn-id: http://core.svn.wordpress.org/trunk@59515 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-04-22 15:35:36 +00:00
audrasjb 759544181d Docs: Mark apply_filters() third parameter $args as optional.
The `$args` parameter of `apply_filters()` is optional. This changeset updates the related Docblock description accordingly so the parameter is not marked as 
`required` on DevHub.

Props gaeldenysiak, audrasjb, gilles66.
Fixes #58481.
See #57840.


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


git-svn-id: http://core.svn.wordpress.org/trunk@55405 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2023-06-08 07:54:22 +00:00
John Blackbourn a714bc03ee Docs: Various corrections and improvements to inline docs and docblocks.
See #57840

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


git-svn-id: http://core.svn.wordpress.org/trunk@55265 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2023-05-12 21:35:21 +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
John Blackbourn f14f3ba995 Docs: All sorts of improvements and corrections to function and hook docs.
See #57840

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


git-svn-id: http://core.svn.wordpress.org/trunk@55206 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2023-04-27 23:15:17 +00:00
Sergey Biryukov a3a299ce1e Docs: Improve description for doing_filter() and doing_action().
This corrects a note about `did_action()` return type, and brings more consistency between the two DocBlocks.

Follow-up to [27294], [53803].

See #55646.
Built from https://develop.svn.wordpress.org/trunk@53809


git-svn-id: http://core.svn.wordpress.org/trunk@53368 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2022-08-01 11:15:14 +00:00
Sergey Biryukov bf067ce93a Plugins: Introduce did_filter() function.
While most of the action functions are aliases for the respective filter functions, using `did_action()` to detect whether a filter has been run is not possible, as it only works specifically for actions.

This is now resolved by introducing a new function, `did_filter()`, which retrieves the number of times a filter has been applied during the current request, bringing parity with `did_action()`.

Follow-up to [4630], [6318], [27294].

Props mordauk, chriscct7, andykeith, nacin, dd32, markparnell, SergeyBiryukov.
Fixes #35357.
Built from https://develop.svn.wordpress.org/trunk@53803


git-svn-id: http://core.svn.wordpress.org/trunk@53362 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2022-07-31 14:20:12 +00:00
Sergey Biryukov a7d02201ea Docs: List the expected type first in a few functions:
* `is_allowed_http_origin()`
* `doing_filter()`
* `wp_get_post_revisions_url()`

Follow-up to [28010], [28889], [30674], [46696], [47060], [48068], [49929], [49963], [52095], [51286], [52111].

See #55646.
Built from https://develop.svn.wordpress.org/trunk@53770


git-svn-id: http://core.svn.wordpress.org/trunk@53329 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2022-07-23 16:57:09 +00:00
audrasjb 0ccc01839a Docs: Update do_action() docblock code example.
This changeset fixes an issue with the code example provided: `do_action()` doesn't return any value.

Props leogermani, thakkarhardik.
Fixes #55977.

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


git-svn-id: http://core.svn.wordpress.org/trunk@53307 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2022-07-21 14:32:12 +00:00
John Blackbourn 6571e44299 Plugins: Convert apply_filters() into a proper variadic function.
This makes its signature more correct by implementing the spread operator, and adjusts the internal logic correspondingly without affecting performance.

Props jrf, SergeyBiryukov, davidbaumwald, mauriac, johnbillion

Fixes #53218

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


git-svn-id: http://core.svn.wordpress.org/trunk@52541 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2022-03-18 18:23:04 +00:00
John Blackbourn 614b866cb0 Plugins: Correct the documented allowable types for to the $callback parameter of various hook related functions.
These functions don't require the callback to be a valid callable, therefore `array` and `string` are also valid types for this parameter.

Props malthert

Fixes #54440

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


git-svn-id: http://core.svn.wordpress.org/trunk@51892 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-12-01 13:22:01 +00:00
Sergey Biryukov adae6bc86d Docs: Further synchronize documentation for some Plugin API functions.
Follow-up to [50807].

See #50531.
Built from https://develop.svn.wordpress.org/trunk@50811


git-svn-id: http://core.svn.wordpress.org/trunk@50420 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-05-04 15:01:58 +00:00
Sergey Biryukov ef28363c7b Plugins: Standardize the terminology used for actions, filters, and callback functions.
Use `$hook_name` when referring to a filter or action hook name, and `$callback` when referring to a callback function.

This brings more consistency to parameter names in Plugin API functions.

Includes minor code layout fixes for better readability and reordering some functions in a more logical order.

Props johnbillion, jrf, SergeyBiryukov.
Fixes #50531.
Built from https://develop.svn.wordpress.org/trunk@50807


git-svn-id: http://core.svn.wordpress.org/trunk@50416 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-05-04 10:48:03 +00:00
Sergey Biryukov 37662df05e Docs: In various @return tags, list the expected type first, instead of false or WP_Error.
Follow-up to [46696], [47060], [49926], [49927].

See #51800.
Built from https://develop.svn.wordpress.org/trunk@49929


git-svn-id: http://core.svn.wordpress.org/trunk@49628 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-01-04 17:18:04 +00:00
Sergey Biryukov f4d610310c Docs: Synchronize and correct documentation for has_filter() and WP_Hook::has_filter().
`WP_Hook::has_filter()` returns true if `$function_to_check` is omitted and the hook being checked has one or more registered callbacks.

Follow-up to [49927].

See #51800.
Built from https://develop.svn.wordpress.org/trunk@49928


git-svn-id: http://core.svn.wordpress.org/trunk@49627 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-01-04 16:58:08 +00:00
John Blackbourn dfe1f9b322 Docs: Promote many bool types to true or false where only that value is used.
See #51800

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


git-svn-id: http://core.svn.wordpress.org/trunk@49626 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-01-03 22:04:04 +00:00
John Blackbourn 53da9208dd Docs: Various docblock corrections particularly relating to boolean types.
See #51800

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


git-svn-id: http://core.svn.wordpress.org/trunk@49625 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-01-03 21:57:09 +00:00
John Blackbourn b2515abd45 Docs: Improve the docs for the globals that are used in the actions and filters API.
See #50531, #50768

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


git-svn-id: http://core.svn.wordpress.org/trunk@48958 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-10-18 19:19:06 +00:00
Sergey Biryukov 69e7e7681b Plugins: Consistently use an empty string as the default value for $replacement and $message parameters in:
* `_deprecated_function()`
* `_deprecated_constructor()`
* `_deprecated_file()`
* `_deprecated_argument()`
* `_deprecated_hook()`
* `apply_filters_deprecated()`
* `do_action_deprecated()`

This matches the documented type of `string` for these parameters and removes unnecessarily strict `! is_null()` checks.

Follow-up to [46792].

Props jignesh.nakrani, renathoc, SergeyBiryukov.
Fixes #49698.
Built from https://develop.svn.wordpress.org/trunk@48327


git-svn-id: http://core.svn.wordpress.org/trunk@48096 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-07-05 21:09:03 +00:00
Sergey Biryukov b16368c268 Docs: Remove @staticvar tags from core.
The tag was supported in phpDocumentor 1.x, but is no longer supported in 2.x and 3.x.

Usage of static variables is considered an internal implementation detail and has no information value for someone reading the docs.

Props alishanvr, jrf.
Fixes #50426.
Built from https://develop.svn.wordpress.org/trunk@48109


git-svn-id: http://core.svn.wordpress.org/trunk@47878 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-06-20 12:40:12 +00:00
desrosj 27485fd7aa General: Continuing to work towards a passing PHP Compatibility scan.
This is a final pass to fix PHP compatibiilty issues in the codebase with code changes or adding `phpcs:ignore` comments.

With this change, all PHP compatibility warnings and errors without specific tickets have been addressed (see #49810 and #41750).

Props desrosj, johnbillion, jrf.
See #49922.
Built from https://develop.svn.wordpress.org/trunk@47902


git-svn-id: http://core.svn.wordpress.org/trunk@47676 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-06-03 17:40:12 +00:00
Sergey Biryukov 38676936ba Coding Standards: Use strict type check for in_array() and array_search() where strings are involved.
This reduces the number of `WordPress.PHP.StrictInArray.MissingTrueStrict` issues from 486 to 50.

Includes minor code layout fixes for better readability.

See #49542.
Built from https://develop.svn.wordpress.org/trunk@47550


git-svn-id: http://core.svn.wordpress.org/trunk@47325 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-04-05 03:02:11 +00:00
Sergey Biryukov 47ed56f38f Code Modernization: Replace dirname( __FILE__ ) calls with __DIR__ magic constant.
This avoids the performance overhead of the function call every time `dirname( __FILE__ )` was used instead of `__DIR__`.

This commit also includes:

* Removing unnecessary parentheses from `include`/`require` statements. These are language constructs, not function calls.
* Replacing `include` statements for several files with `require_once`, for consistency:
 * `wp-admin/admin-header.php`
 * `wp-admin/admin-footer.php`
 * `wp-includes/version.php`

Props ayeshrajans, desrosj, valentinbora, jrf, joostdevalk, netweb.
Fixes #48082.
Built from https://develop.svn.wordpress.org/trunk@47198


git-svn-id: http://core.svn.wordpress.org/trunk@46998 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-02-06 06:33:11 +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
Sergey Biryukov 2900bb8ea7 Docs: Update links to https://secure.php.net/, they now redirect to https://www.php.net/.
See #48303.
Built from https://develop.svn.wordpress.org/trunk@47088


git-svn-id: http://core.svn.wordpress.org/trunk@46888 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-01-20 03:14:06 +00:00
Sergey Biryukov 3047531f6a Plugins: In _wp_filter_build_unique_id(), remove $wp_filter global and $filter_id_count static variable, unused since [46220].
See #47407, #48074.
Built from https://develop.svn.wordpress.org/trunk@46805


git-svn-id: http://core.svn.wordpress.org/trunk@46605 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-11-29 22:14:01 +00:00
Sergey Biryukov 49401759f3 Docs: Correct @param type for the function parameter in tests_add_filter() and _test_filter_build_unique_id().
Synchronize documentation for `add_filter()`, `tests_add_filter()`, `_wp_filter_build_unique_id()`, `_test_filter_build_unique_id()`.

Add a note that `$tag` and `$priority` are no longer used in `_wp_filter_build_unique_id()` since [46220], and the function always returns a string now.

Props donmhico, remcotolsma, SergeyBiryukov.
Fixes #47407. See #48303.
Built from https://develop.svn.wordpress.org/trunk@46801


git-svn-id: http://core.svn.wordpress.org/trunk@46601 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-11-29 21:42:01 +00:00
Sergey Biryukov 0aef4faacd Plugins: Correct default value of $replacement parameter in do_action_deprecated() and apply_filters_deprecated().
This addresses an inconsistency with `_deprecated_hook()`, which uses `is_null()` to check if `$replacement` was provided, however the previous default value was `false`.

Props shaampk1, felipeelia.
Fixes #48817.
Built from https://develop.svn.wordpress.org/trunk@46792


git-svn-id: http://core.svn.wordpress.org/trunk@46592 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-11-27 23:55:01 +00:00
Sergey Biryukov 4d8a0a8b33 Docs: Use 3-digit, x.x.x style semantic versioning for $version argument in do_action_deprecated() and apply_filters_deprecated() calls.
Props jrf.
Fixes #48255.
Built from https://develop.svn.wordpress.org/trunk@46689


git-svn-id: http://core.svn.wordpress.org/trunk@46489 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-11-09 13:57:03 +00:00
Sergey Biryukov ff65cfcacf Plugins: Restore backward compatibility for PHP4-style passing of array( &$this ) as action argument to do_action().
This is a follow-up to [46149] to avoid unnecessary breakage in case of using the old notation.

Props david.binda, jrf.
Reviewed by azaozz.
Fixes #48312.
Built from https://develop.svn.wordpress.org/trunk@46568


git-svn-id: http://core.svn.wordpress.org/trunk@46365 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-10-22 00:11:03 +00:00
Sergey Biryukov 8d1e51e9c7 Docs: Add a @since note about new parameters with the spread operator added to function signatures.
Props jrf.
See #47678.
Built from https://develop.svn.wordpress.org/trunk@46451


git-svn-id: http://core.svn.wordpress.org/trunk@46249 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-10-09 04:28:02 +00:00
whyisjake 304c19dbac Options: register_uninstall_hook() causes large amounts of unnecessary option updates.
Prevent extra database read/writes from the the hook.

Props jeichorn, MikeHansenMe, DrewAPicture, Rahe, tha_sun, mikeschroder.
Fixes #31792.


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


git-svn-id: http://core.svn.wordpress.org/trunk@46132 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-09-26 22:08:57 +00:00
Sergey Biryukov 8bb8e77ace Code Modernisation: Introduce the spread operator in do_action().
Rather than relying on `func_get_args()` to retrieve arbitrary function arguments, we can now use the spread operator to assign them directly to a variable.

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


git-svn-id: http://core.svn.wordpress.org/trunk@46121 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-09-26 13:53:58 +00:00
Sergey Biryukov fe82a615a9 Code Modernization: Remove workarounds for spl_object_hash().
The `spl_object_hash()` function was introduced in PHP 5.2.0. As of PHP 5.3, the PHP SPL extension can no longer be disabled, so these workarounds are no longer needed.

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


git-svn-id: http://core.svn.wordpress.org/trunk@46032 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-09-20 22:34:57 +00:00
Sergey Biryukov a86711e28e Code Modernisation: Remove redundant PHP 4 code from do_action().
As of PHP 5, objects are always passed by reference, so this has not been needed for quite some time.

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


git-svn-id: http://core.svn.wordpress.org/trunk@45961 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-09-16 14:48:54 +00:00
Sergey Biryukov f3f1d530f4 Code Modernisation: Simplify some logic in apply_filters().
Props jrf.
See #47678.
Built from https://develop.svn.wordpress.org/trunk@46146


git-svn-id: http://core.svn.wordpress.org/trunk@45958 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-09-15 12:04:55 +00:00
Sergey Biryukov 8e85299a00 General: First pass at replacing Codex URLs with a corresponding HelpHub or DevHub article.
Props ianbelanger, tobifjellner, SergeyBiryukov.
See #47771.
Built from https://develop.svn.wordpress.org/trunk@45674


git-svn-id: http://core.svn.wordpress.org/trunk@45485 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-07-25 22:45:57 +00:00
John Blackbourn e91bf3535c Docs: Correct a function name in the do_action() documentation.
See #37402

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


git-svn-id: http://core.svn.wordpress.org/trunk@45232 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-05-25 22:53:51 +00:00
John Blackbourn 9abcf7881f Docs: Improve and correct documentation for hook-related variadic functions.
See #37402

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


git-svn-id: http://core.svn.wordpress.org/trunk@45231 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-05-25 22:52:54 +00:00
John Blackbourn 9c6393e967 Docs: Switch to the more common syntax for variadic function documentation.
See #37402

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


git-svn-id: http://core.svn.wordpress.org/trunk@45229 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-05-25 21:59:51 +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
Adam Silverstein 0a431ea356 Revert "Add wp.hooks - JavaScript actions and filters."
Revert `wp.hooks` for now as we continue to refine and test. 

Reverts [41375].

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


git-svn-id: http://core.svn.wordpress.org/trunk@41585 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2017-10-04 20:25:49 +00:00
Adam Silverstein f36cccde7e Add wp.hooks - JavaScript actions and filters.
Add a JavaScript hooks library with an API that mirrors the WordPress Plugin API; provides similar functionality and API to PHP hooks.

Called via the global `wp.hooks`, eg: `wp.hooks.addAction()`, etc. Adds:

* `addAction( 'hook', 'vendor/plugin/function', callback, priority )`
* `addFilter( 'hook', 'vendor/plugin/function', callback, priority )`
* `removeAction( 'hook', 'vendor/plugin/function' )`
* `removeFilter( 'hook',  'vendor/plugin/function' )`
* `removeAllActions( 'hook' )`
* `removeAllFilters( 'hook' )`
* `doAction( 'hook', arg1, arg2, moreArgs, finalArg )`
* `applyFilters( 'hook', content, arg1, arg2, moreArgs, finalArg )`
* `doingAction( 'hook' )`
* `doingFilter( 'hook' )`
* `didAction( 'hook' )`
* `didFilter( 'hook' )`
* `hasAction( 'hook' )`
* `hasFilter( 'hook' )`

Props adamsilverstein, jnylen0, aduth, kadamwhite, youknowriad, schlessera, mikeschinkel, azaozz, vhauri, CaptainN, scribu, carldanley, chetanchauhan, mgibbs189, stephenharris, justnorris, koopersmith, gcorne, TV productions, atimmer.

Fixes #21170.


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


git-svn-id: http://core.svn.wordpress.org/trunk@41208 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2017-09-12 12:54:45 +00:00
Drew Jaynes fabca552aa Docs: Clarify the expected usage of the $args parameter as an array in the DocBlock for apply_filters_deprecated(), including an example.
See #41017.

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


git-svn-id: http://core.svn.wordpress.org/trunk@41139 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2017-08-23 15:52:46 +00:00
John Blackbourn 28eda6f4bc General: Improve terminology used when referring to installations of WordPress and its extensions.
"Install" is not a noun, and while it might be acceptable to use the verb as a noun, it is not correct. Using the correct
noun, "installation", increases clarity, especially for non-native English speakers.

This change fixes the usage in user-facing text and in developer documentation.

Fixes #41620

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


git-svn-id: http://core.svn.wordpress.org/trunk@41129 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2017-08-22 11:52:48 +00:00
Gary Pendergast 4dcb7a0fa9 Bootstrap: Use dirname() when loading class-wp-hook.php from plugin.php.
To allow `plugin.php` to be loaded before the rest of WordPress is loaded, it cannot rely on WordPress constants, such as `ABSPATH` and `WPINC`.

Instead, we can assume that `class-wp-hook.php` will be in the same directory as `plugin.php`, so `dirname( __FILE__ )` will give us the correct path to load from.

Props pento, dd32.
Fixes #37707.


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


git-svn-id: http://core.svn.wordpress.org/trunk@38532 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-09-12 01:50:30 +00:00