WordPress.org

Make WordPress Core

Ticket #19203: 19203.3.diff

File 19203.3.diff, 5.5 KB (added by ericlewis, 7 years ago)
  • wp-includes/plugin.php

     
    2020 */
    2121
    2222/**
    23  * Hooks a function or method to a specific filter action.
     23 * Hooks a callback onto a filter.
    2424 *
    25  * Filters are the hooks that WordPress launches to modify text of various types
    26  * before adding it to the database or sending it to the browser screen. Plugins
    27  * can specify that one or more of its PHP functions is executed to
    28  * modify specific types of text at these times, using the Filter API.
     25 * WordPress offers filters to make it possible to modify various types of
     26 * internal data at runtime.
    2927 *
    30  * To use the API, the following code should be used to bind a callback to the
    31  * filter.
     28 * A plugin can modify data by adding callbacks to filters. When the filter
     29 * is later applied, each callback is run in order of priority, and given
     30 * the opportunity to modify a value by returning a new value.
    3231 *
     32 * The following example shows how a callback function is bound to a filter hook.
     33 * Note that $example is passed to the callback, (maybe) modified, then returned:
     34 *
    3335 * <code>
    34  * function example_hook($example) { echo $example; }
    35  * add_filter('example_filter', 'example_hook');
     36 * function example_callback( $example ) {
     37 *      // Maybe modify $example in some way
     38 *      return $example;
     39 * }
     40 * add_filter( 'example_filter', 'example_callback' );
    3641 * </code>
    3742 *
    38  * In WordPress 1.5.1+, hooked functions can take extra arguments that are set
    39  * when the matching do_action() or apply_filters() call is run. The
    40  * $accepted_args allow for calling functions only when the number of args
    41  * match. Hooked functions can take extra arguments that are set when the
    42  * matching do_action() or apply_filters() call is run. For example, the action
    43  * comment_id_not_found will pass any functions that hook onto it the ID of the
    44  * requested comment.
     43 * Since WordPress 1.5.1, hooked callbacks can take as many arguments as are given
     44 * as parameters in the corresponding apply_filters() call. The $accepted_args
     45 * parameter should be set to the number of arguments supplied to the
     46 * apply_filters() call.
    4547 *
    46  * <strong>Note:</strong> the function will return true no matter if the
    47  * function was hooked fails or not. There are no checks for whether the
    48  * function exists beforehand and no checks to whether the <tt>$function_to_add</tt>
    49  * is even a string. It is up to you to take care and this is done for
    50  * optimization purposes, so everything is as quick as possible.
     48 * <strong>Note:</strong> the function will return true whether or not the callback
     49 * is valid. It is up to you to take care. This is done for optimization purposes,
     50 * so everything is as quick as possible.
    5151 *
    5252 * @package WordPress
    5353 * @subpackage Plugin
    5454 * @since 0.71
    55  * @global array $wp_filter Stores all of the filters added in the form of
    56  *      wp_filter['tag']['array of priorities']['array of functions serialized']['array of ['array (functions, accepted_args)']']
     55 * @global array $wp_filter A multidimensional array of all hooks and the callbacks hooked to them.
    5756 * @global array $merged_filters Tracks the tags that need to be merged for later. If the hook is added, it doesn't need to run through that process.
    5857 *
    5958 * @param string $tag The name of the filter to hook the $function_to_add to.
    60  * @param callback $function_to_add The name of the function to be called when the filter is applied.
    61  * @param int $priority optional. Used to specify the order in which the functions associated with a particular action are executed (default: 10). Lower numbers correspond with earlier execution, and functions with the same priority are executed in the order in which they were added to the action.
     59 * @param callback $function_to_add The callback to be run when the filter is applied.
     60 * @param int $priority optional. The order in which the functions associated with a particular action are executed (default: 10). Lower numbers correspond with earlier execution, and functions with the same priority are executed in the order in which they were added to the action.
    6261 * @param int $accepted_args optional. The number of arguments the function accept (default 1).
    6362 * @return boolean true
    6463 */
     
    114113 *
    115114 * The function allows for additional arguments to be added and passed to hooks.
    116115 * <code>
    117  * function example_hook($string, $arg1, $arg2)
    118  * {
    119  *              //Do stuff
    120  *              return $string;
     116 * // Our filter callback function
     117 * function example_callback( $string, $arg1, $arg2 ) {
     118 *      // Maybe modify $string
     119 *      return $string;
    121120 * }
    122  * $value = apply_filters('example_filter', 'filter me', 'arg1', 'arg2');
     121 * add_filter( 'example_filter', 'example_callback', 10, 3 );
     122 *
     123 * // Apply the filters by calling the 'example_callback' function we
     124 * // "hooked" to 'example_filter' using the add_filter() function above.
     125 * // - 'example_filter' is the filter hook $tag
     126 * // - 'filter me' is the value being filtered
     127 * // - $arg1 and $arg2 are the additional arguments passed to the callback.
     128 * $value = apply_filters( 'example_filter', 'filter me', $arg1, $arg2 );
    123129 * </code>
    124130 *
    125131 * @package WordPress
     
    708714 * @uses $wp_filter Used to process all of the functions in the 'all' hook
    709715 *
    710716 * @param array $args The collected parameters from the hook that was called.
    711  * @param string $hook Optional. The hook name that was used to call the 'all' hook.
    712717 */
    713718function _wp_call_all_hook($args) {
    714719        global $wp_filter;