GC_Hook::add_filter()

最后更新于:2021-11-27 21:01:32

GC_Hook::add_filter( string$hook_name, callable$callback, int$priority, int$accepted_args)

Adds a callback function to a filter hook.

参数

$hook_name

(string) (Required) The name of the filter to add the callback to.

$callback

(callable) (Required) The callback to be run when the filter is applied.

$priority

(int) (Required) The order in which the functions associated with a particular filter 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 filter.

$accepted_args

(int) (Required) The number of arguments the function accepts.

源文件

文件: gc-includes/class-gc-hook.php

	public function add_filter( $hook_name, $callback, $priority, $accepted_args ) {
		$idx = _gc_filter_build_unique_id( $hook_name, $callback, $priority );

		$priority_existed = isset( $this->callbacks[ $priority ] );

		$this->callbacks[ $priority ][ $idx ] = array(
			'function'      => $callback,
			'accepted_args' => $accepted_args,
		);

		// If we're adding a new priority to the list, put them back in sorted order.
		if ( ! $priority_existed && count( $this->callbacks ) > 1 ) {
			ksort( $this->callbacks, SORT_NUMERIC );
		}

		if ( $this->nesting_level > 0 ) {
			$this->resort_active_iterations( $priority, $priority_existed );
		}
	}