Changeset 25476
- Timestamp:
- 09/18/2013 07:47:31 AM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/plugin.php
r24711 r25476 23 23 * Hooks a function or method to a specific filter action. 24 24 * 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. 29 * 30 * To use the API, the following code should be used to bind a callback to the 31 * filter. 25 * WordPress offers filter hooks to allow plugins to modify 26 * various types of internal data at runtime. 27 * 28 * A plugin can modify data by binding a callback to a filter hook. When the filter 29 * is later applied, each bound callback is run in order of priority, and given 30 * the opportunity to modify a value by returning a new value. 31 * 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: 32 34 * 33 35 * <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' ); 36 41 * </code> 37 42 * 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. 45 * 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. 51 * 52 * @package WordPress 53 * @subpackage Plugin 43 * Since WordPress 1.5.1, bound callbacks can take as many arguments as are 44 * passed as parameters in the corresponding apply_filters() call. The $accepted_args 45 * parameter allows for calling functions only when the number of args match. 46 * 47 * <strong>Note:</strong> the function will return true whether or not the callback 48 * is valid. It is up to you to take care. This is done for optimization purposes, 49 * so everything is as quick as possible. 50 * 51 * @package WordPress 52 * @subpackage Plugin 53 * 54 * @global array $wp_filter A multidimensional array of all hooks and the callbacks hooked to them. 55 * @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. 56 * 54 57 * @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)']'] 57 * @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. 58 * 59 * @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. 62 * @param int $accepted_args optional. The number of arguments the function accept (default 1). 58 * 59 * @param string $tag The name of the filter to hook the $function_to_add callback to. 60 * @param callback $function_to_add The callback to be run when the filter is applied. 61 * @param int $priority (optional) The order in which the functions associated with a particular action are executed. 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. 62 * Default 10. 63 * @param int $accepted_args (optional) The number of arguments the function accepts. 64 * Default 1. 63 65 * @return boolean true 64 66 */ 65 function add_filter( $tag, $function_to_add, $priority = 10, $accepted_args = 1) {67 function add_filter( $tag, $function_to_add, $priority = 10, $accepted_args = 1 ) { 66 68 global $wp_filter, $merged_filters; 67 69 … … 115 117 * The function allows for additional arguments to be added and passed to hooks. 116 118 * <code> 117 * function example_hook($string, $arg1, $arg2)118 * {119 * //Do stuff120 * 119 * // Our filter callback function 120 * function example_callback( $string, $arg1, $arg2 ) { 121 * // (maybe) modify $string 122 * return $string; 121 123 * } 122 * $value = apply_filters('example_filter', 'filter me', 'arg1', 'arg2'); 124 * add_filter( 'example_filter', 'example_callback', 10, 3 ); 125 * 126 * // Apply the filters by calling the 'example_callback' function we 127 * // "hooked" to 'example_filter' using the add_filter() function above. 128 * // - 'example_filter' is the filter hook $tag 129 * // - 'filter me' is the value being filtered 130 * // - $arg1 and $arg2 are the additional arguments passed to the callback. 131 * $value = apply_filters( 'example_filter', 'filter me', $arg1, $arg2 ); 123 132 * </code> 124 133 * 125 134 * @package WordPress 126 135 * @subpackage Plugin 136 * 137 * @global array $wp_filter Stores all of the filters 138 * @global array $merged_filters Merges the filter hooks using this function. 139 * @global array $wp_current_filter stores the list of current filters with the current one last 140 * 127 141 * @since 0.71 128 * @global array $wp_filter Stores all of the filters 129 * @global array $merged_filters Merges the filter hooks using this function. 130 * @global array $wp_current_filter stores the list of current filters with the current one last 131 * 132 * @param string $tag The name of the filter hook. 142 * 143 * @param string $tag The name of the filter hook. 133 144 * @param mixed $value The value on which the filters hooked to <tt>$tag</tt> are applied on. 134 * @param mixed $var ,...Additional variables passed to the functions hooked to <tt>$tag</tt>.145 * @param mixed $var Additional variables passed to the functions hooked to <tt>$tag</tt>. 135 146 * @return mixed The filtered value after all hooked functions are applied to it. 136 147 */ 137 function apply_filters( $tag, $value) {148 function apply_filters( $tag, $value ) { 138 149 global $wp_filter, $merged_filters, $wp_current_filter; 139 150 … … 709 720 * 710 721 * @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.712 722 */ 713 723 function _wp_call_all_hook($args) {
Note: See TracChangeset
for help on using the changeset viewer.