[ Index ]

PHP Cross Reference of WordPress

title

Body

[close]

/wp-includes/ -> plugin.php (summary)

The plugin API is located in this file, which allows for creating actions and filters and hooking functions, and methods. The functions or methods will then be run when the action or filter is called. The API callback examples reference functions, but can be methods of classes. To hook methods, you'll need to pass an array one of two ways.

File Size: 966 lines (34 kb)
Included or required: 1 time
Referenced: 0 times
Includes or requires: 1 file
 wp-includes/class-wp-hook.php

Defines 28 functions

  add_filter()
  apply_filters()
  apply_filters_ref_array()
  has_filter()
  remove_filter()
  remove_all_filters()
  current_filter()
  doing_filter()
  add_action()
  do_action()
  do_action_ref_array()
  has_action()
  remove_action()
  remove_all_actions()
  current_action()
  doing_action()
  did_action()
  apply_filters_deprecated()
  do_action_deprecated()
  plugin_basename()
  wp_register_plugin_realpath()
  plugin_dir_path()
  plugin_dir_url()
  register_activation_hook()
  register_deactivation_hook()
  register_uninstall_hook()
  _wp_call_all_hook()
  _wp_filter_build_unique_id()

Functions
Functions that are not part of a class:

add_filter( $hook_name, $callback, $priority = 10, $accepted_args = 1 )   X-Ref
Adds a callback function to a filter hook.

WordPress offers filter hooks to allow plugins to modify
various types of internal data at runtime.

A plugin can modify data by binding a callback to a filter hook. When the filter
is later applied, each bound callback is run in order of priority, and given
the opportunity to modify a value by returning a new value.

The following example shows how a callback function is bound to a filter hook.

Note that `$example` is passed to the callback, (maybe) modified, then returned:

function example_callback( $example ) {
// Maybe modify $example in some way.
return $example;
}
add_filter( 'example_filter', 'example_callback' );

Bound callbacks can accept from none to the total number of arguments passed as parameters
in the corresponding apply_filters() call.

In other words, if an apply_filters() call passes four total arguments, callbacks bound to
it can accept none (the same as 1) of the arguments or up to four. The important part is that
the `$accepted_args` value must reflect the number of arguments the bound callback *actually*
opted to accept. If no arguments were accepted by the callback that is considered to be the
same as accepting 1 argument. For example:

// Filter call.
$value = apply_filters( 'hook', $value, $arg2, $arg3 );

// Accepting zero/one arguments.
function example_callback() {
...
return 'some value';
}
add_filter( 'hook', 'example_callback' ); // Where $priority is default 10, $accepted_args is default 1.

// Accepting two arguments (three possible).
function example_callback( $value, $arg2 ) {
...
return $maybe_modified_value;
}
add_filter( 'hook', 'example_callback', 10, 2 ); // Where $priority is 10, $accepted_args is 2.

*Note:* The function will return true whether or not the callback is valid.
It is up to you to take care. This is done for optimization purposes, so
everything is as quick as possible.

since: 0.71
return: true Always returns true.
param: string   $hook_name     The name of the filter to add the callback to.
param: callable $callback      The callback to be run when the filter is applied.
param: int      $priority      Optional. Used to specify the order in which the functions
param: int      $accepted_args Optional. The number of arguments the function accepts. Default 1.

apply_filters( $hook_name, $value, ...$args )   X-Ref
Calls the callback functions that have been added to a filter hook.

This function invokes all functions attached to filter hook `$hook_name`.
It is possible to create new filter hooks by simply calling this function,
specifying the name of the new hook using the `$hook_name` parameter.

The function also allows for multiple additional arguments to be passed to hooks.

Example usage:

// The filter callback function.
function example_callback( $string, $arg1, $arg2 ) {
// (maybe) modify $string.
return $string;
}
add_filter( 'example_filter', 'example_callback', 10, 3 );

/*
* Apply the filters by calling the 'example_callback()' function
* that's hooked onto `example_filter` above.
*
* - 'example_filter' is the filter hook.
* - 'filter me' is the value being filtered.
* - $arg1 and $arg2 are the additional arguments passed to the callback.
$value = apply_filters( 'example_filter', 'filter me', $arg1, $arg2 );

since: 0.71
since: 6.0.0 Formalized the existing and already documented `...$args` parameter
return: mixed The filtered value after all hooked functions are applied to it.
param: string $hook_name The name of the filter hook.
param: mixed  $value     The value to filter.
param: mixed  ...$args   Additional parameters to pass to the callback functions.

apply_filters_ref_array( $hook_name, $args )   X-Ref
Calls the callback functions that have been added to a filter hook, specifying arguments in an array.

since: 3.0.0
return: mixed The filtered value after all hooked functions are applied to it.
param: string $hook_name The name of the filter hook.
param: array  $args      The arguments supplied to the functions hooked to `$hook_name`.

has_filter( $hook_name, $callback = false )   X-Ref
Checks if any filter has been registered for a hook.

When using the `$callback` argument, this function may return a non-boolean value
that evaluates to false (e.g. 0), so use the `===` operator for testing the return value.

since: 2.5.0
return: bool|int If `$callback` is omitted, returns boolean for whether the hook has
param: string                      $hook_name The name of the filter hook.
param: callable|string|array|false $callback  Optional. The callback to check for.

remove_filter( $hook_name, $callback, $priority = 10 )   X-Ref
Removes a callback function from a filter hook.

This can be used to remove default functions attached to a specific filter
hook and possibly replace them with a substitute.

To remove a hook, the `$callback` and `$priority` arguments must match
when the hook was added. This goes for both filters and actions. No warning
will be given on removal failure.

since: 1.2.0
return: bool Whether the function existed before it was removed.
param: string                $hook_name The filter hook to which the function to be removed is hooked.
param: callable|string|array $callback  The callback to be removed from running when the filter is applied.
param: int                   $priority  Optional. The exact priority used when adding the original

remove_all_filters( $hook_name, $priority = false )   X-Ref
Removes all of the callback functions from a filter hook.

since: 2.7.0
return: true Always returns true.
param: string    $hook_name The filter to remove callbacks from.
param: int|false $priority  Optional. The priority number to remove them from.

current_filter()   X-Ref
Retrieves the name of the current filter hook.

since: 2.5.0
return: string Hook name of the current filter.

doing_filter( $hook_name = null )   X-Ref
Returns whether or not a filter hook is currently being processed.

The function current_filter() only returns the most recent filter or action
being executed. did_action() returns true once the action is initially
processed.

This function allows detection for any filter currently being executed
(regardless of whether it's the most recent filter to fire, in the case of
hooks called from hook callbacks) to be verified.

since: 3.9.0
return: bool Whether the filter is currently in the stack.
param: null|string $hook_name Optional. Filter hook to check. Defaults to null,

add_action( $hook_name, $callback, $priority = 10, $accepted_args = 1 )   X-Ref
Adds a callback function to an action hook.

Actions are the hooks that the WordPress core launches at specific points
during execution, or when specific events occur. Plugins can specify that
one or more of its PHP functions are executed at these points, using the
Action API.

since: 1.2.0
return: true Always returns true.
param: string   $hook_name       The name of the action to add the callback to.
param: callable $callback        The callback to be run when the action is called.
param: int      $priority        Optional. Used to specify the order in which the functions
param: int      $accepted_args   Optional. The number of arguments the function accepts. Default 1.

do_action( $hook_name, ...$arg )   X-Ref
Calls the callback functions that have been added to an action hook.

This function invokes all functions attached to action hook `$hook_name`.
It is possible to create new action hooks by simply calling this function,
specifying the name of the new hook using the `$hook_name` parameter.

You can pass extra arguments to the hooks, much like you can with `apply_filters()`.

Example usage:

// The action callback function.
function example_callback( $arg1, $arg2 ) {
// (maybe) do something with the args.
}
add_action( 'example_action', 'example_callback', 10, 2 );

/*
* Trigger the actions by calling the 'example_callback()' function
* that's hooked onto `example_action` above.
*
* - 'example_action' is the action hook.
* - $arg1 and $arg2 are the additional arguments passed to the callback.
$value = do_action( 'example_action', $arg1, $arg2 );

since: 1.2.0
since: 5.3.0 Formalized the existing and already documented `...$arg` parameter
param: string $hook_name The name of the action to be executed.
param: mixed  ...$arg    Optional. Additional arguments which are passed on to the

do_action_ref_array( $hook_name, $args )   X-Ref
Calls the callback functions that have been added to an action hook, specifying arguments in an array.

since: 2.1.0
param: string $hook_name The name of the action to be executed.
param: array  $args      The arguments supplied to the functions hooked to `$hook_name`.

has_action( $hook_name, $callback = false )   X-Ref
Checks if any action has been registered for a hook.

When using the `$callback` argument, this function may return a non-boolean value
that evaluates to false (e.g. 0), so use the `===` operator for testing the return value.

since: 2.5.0
return: bool|int If `$callback` is omitted, returns boolean for whether the hook has
param: string                      $hook_name The name of the action hook.
param: callable|string|array|false $callback  Optional. The callback to check for.

remove_action( $hook_name, $callback, $priority = 10 )   X-Ref
Removes a callback function from an action hook.

This can be used to remove default functions attached to a specific action
hook and possibly replace them with a substitute.

To remove a hook, the `$callback` and `$priority` arguments must match
when the hook was added. This goes for both filters and actions. No warning
will be given on removal failure.

since: 1.2.0
return: bool Whether the function is removed.
param: string                $hook_name The action hook to which the function to be removed is hooked.
param: callable|string|array $callback  The name of the function which should be removed.
param: int                   $priority  Optional. The exact priority used when adding the original

remove_all_actions( $hook_name, $priority = false )   X-Ref
Removes all of the callback functions from an action hook.

since: 2.7.0
return: true Always returns true.
param: string    $hook_name The action to remove callbacks from.
param: int|false $priority  Optional. The priority number to remove them from.

current_action()   X-Ref
Retrieves the name of the current action hook.

since: 3.9.0
return: string Hook name of the current action.

doing_action( $hook_name = null )   X-Ref
Returns whether or not an action hook is currently being processed.

since: 3.9.0
return: bool Whether the action is currently in the stack.
param: string|null $hook_name Optional. Action hook to check. Defaults to null,

did_action( $hook_name )   X-Ref
Retrieves the number of times an action has been fired during the current request.

since: 2.1.0
return: int The number of times the action hook has been fired.
param: string $hook_name The name of the action hook.

apply_filters_deprecated( $hook_name, $args, $version, $replacement = '', $message = '' )   X-Ref
Fires functions attached to a deprecated filter hook.

When a filter hook is deprecated, the apply_filters() call is replaced with
apply_filters_deprecated(), which triggers a deprecation notice and then fires
the original filter hook.

Note: the value and extra arguments passed to the original apply_filters() call
must be passed here to `$args` as an array. For example:

// Old filter.
return apply_filters( 'wpdocs_filter', $value, $extra_arg );

// Deprecated.
return apply_filters_deprecated( 'wpdocs_filter', array( $value, $extra_arg ), '4.9.0', 'wpdocs_new_filter' );

since: 4.6.0
param: string $hook_name   The name of the filter hook.
param: array  $args        Array of additional function arguments to be passed to apply_filters().
param: string $version     The version of WordPress that deprecated the hook.
param: string $replacement Optional. The hook that should have been used. Default empty.
param: string $message     Optional. A message regarding the change. Default empty.

do_action_deprecated( $hook_name, $args, $version, $replacement = '', $message = '' )   X-Ref
Fires functions attached to a deprecated action hook.

When an action hook is deprecated, the do_action() call is replaced with
do_action_deprecated(), which triggers a deprecation notice and then fires
the original hook.

since: 4.6.0
param: string $hook_name   The name of the action hook.
param: array  $args        Array of additional function arguments to be passed to do_action().
param: string $version     The version of WordPress that deprecated the hook.
param: string $replacement Optional. The hook that should have been used. Default empty.
param: string $message     Optional. A message regarding the change. Default empty.

plugin_basename( $file )   X-Ref
Gets the basename of a plugin.

This method extracts the name of a plugin from its filename.

since: 1.5.0
return: string The name of a plugin.
param: string $file The filename of plugin.

wp_register_plugin_realpath( $file )   X-Ref
Register a plugin's real path.

This is used in plugin_basename() to resolve symlinked paths.

since: 3.9.0
return: bool Whether the path was able to be registered.
param: string $file Known path to the file.

plugin_dir_path( $file )   X-Ref
Get the filesystem directory path (with trailing slash) for the plugin __FILE__ passed in.

since: 2.8.0
return: string the filesystem path of the directory that contains the plugin.
param: string $file The filename of the plugin (__FILE__).

plugin_dir_url( $file )   X-Ref
Get the URL directory path (with trailing slash) for the plugin __FILE__ passed in.

since: 2.8.0
return: string the URL path of the directory that contains the plugin.
param: string $file The filename of the plugin (__FILE__).

register_activation_hook( $file, $callback )   X-Ref
Set the activation hook for a plugin.

When a plugin is activated, the action 'activate_PLUGINNAME' hook is
called. In the name of this hook, PLUGINNAME is replaced with the name
of the plugin, including the optional subdirectory. For example, when the
plugin is located in wp-content/plugins/sampleplugin/sample.php, then
the name of this hook will become 'activate_sampleplugin/sample.php'.

When the plugin consists of only one file and is (as by default) located at
wp-content/plugins/sample.php the name of this hook will be
'activate_sample.php'.

since: 2.0.0
param: string   $file     The filename of the plugin including the path.
param: callable $callback The function hooked to the 'activate_PLUGIN' action.

register_deactivation_hook( $file, $callback )   X-Ref
Sets the deactivation hook for a plugin.

When a plugin is deactivated, the action 'deactivate_PLUGINNAME' hook is
called. In the name of this hook, PLUGINNAME is replaced with the name
of the plugin, including the optional subdirectory. For example, when the
plugin is located in wp-content/plugins/sampleplugin/sample.php, then
the name of this hook will become 'deactivate_sampleplugin/sample.php'.

When the plugin consists of only one file and is (as by default) located at
wp-content/plugins/sample.php the name of this hook will be
'deactivate_sample.php'.

since: 2.0.0
param: string   $file     The filename of the plugin including the path.
param: callable $callback The function hooked to the 'deactivate_PLUGIN' action.

register_uninstall_hook( $file, $callback )   X-Ref
Sets the uninstallation hook for a plugin.

Registers the uninstall hook that will be called when the user clicks on the
uninstall link that calls for the plugin to uninstall itself. The link won't
be active unless the plugin hooks into the action.

The plugin should not run arbitrary code outside of functions, when
registering the uninstall hook. In order to run using the hook, the plugin
will have to be included, which means that any code laying outside of a
function will be run during the uninstallation process. The plugin should not
hinder the uninstallation process.

If the plugin can not be written without running code within the plugin, then
the plugin should create a file named 'uninstall.php' in the base plugin
folder. This file will be called, if it exists, during the uninstallation process
bypassing the uninstall hook. The plugin, when using the 'uninstall.php'
should always check for the 'WP_UNINSTALL_PLUGIN' constant, before
executing.

since: 2.7.0
param: string   $file     Plugin file.
param: callable $callback The callback to run when the hook is called. Must be

_wp_call_all_hook( $args )   X-Ref
Calls the 'all' hook, which will process the functions hooked into it.

The 'all' hook passes all of the arguments or parameters that were used for
the hook, which this function was called for.

This function is used internally for apply_filters(), do_action(), and
do_action_ref_array() and is not meant to be used from outside those
functions. This function does not check for the existence of the all hook, so
it will fail unless the all hook exists prior to this function call.

since: 2.5.0
param: array $args The collected parameters from the hook that was called.

_wp_filter_build_unique_id( $hook_name, $callback, $priority )   X-Ref
Builds Unique ID for storage and retrieval.

The old way to serialize the callback caused issues and this function is the
solution. It works by checking for objects and creating a new property in
the class to keep track of the object and new objects of the same class that
need to be added.

It also allows for the removal of actions and filters for objects after they
change class properties. It is possible to include the property $wp_filter_id
in your class and set it to "null" or a number to bypass the workaround.
However this will prevent you from adding new classes and any new classes
will overwrite the previous hook by the same class.

Functions and static method callbacks are just returned as strings and
shouldn't have any speed penalty.

since: 2.2.3
since: 5.3.0 Removed workarounds for spl_object_hash().
return: string Unique function ID for usage as array key.
param: string                $hook_name Unused. The name of the filter to build ID for.
param: callable|string|array $callback  The callback to generate ID for. The callback may
param: int                   $priority  Unused. The order in which the functions



Generated: Thu Apr 25 01:00:03 2024 Cross-referenced by PHPXref 0.7.1