ACF_Ajax_Query{}ACF 1.0

Хуков нет.

Использование

$ACF_Ajax_Query = new ACF_Ajax_Query();
// use class methods

Методы

  1. public get_args( $request )
  2. public get_response( $request )
  3. public get_result( $item )
  4. public get_results( $args )
  5. public init_request( $request )

Код ACF_Ajax_Query{} ACF 6.0.4

class ACF_Ajax_Query extends ACF_Ajax {

	/** @var bool Prevents access for non-logged in users. */
	var $public = true;

	/** @var int The page of results to return. */
	var $page = 1;

	/** @var int The number of results per page. */
	var $per_page = 20;

	/** @var bool Signifies whether or not this AJAX query has more pages to load. */
	var $more = false;

	/** @var string The searched term. */
	var $search = '';

	/** @var bool Signifies whether the current query is a search. */
	var $is_search = false;

	/** @var (int|string) The post_id being edited. */
	var $post_id = 0;

	/** @var array The ACF field related to this query. */
	var $field = false;

	/**
	 * get_response
	 *
	 * Returns the response data to sent back.
	 *
	 * @date    31/7/18
	 * @since   5.7.2
	 *
	 * @param   array $request The request args.
	 * @return  (array|WP_Error) The response data or WP_Error.
	 */
	function get_response( $request ) {

		// Init request.
		$this->init_request( $request );

		// Get query args.
		$args = $this->get_args( $request );

		// Get query results.
		$results = $this->get_results( $args );
		if ( is_wp_error( $results ) ) {
			return $results;
		}

		// Return response.
		return array(
			'results' => $results,
			'more'    => $this->more,
		);
	}

	/**
	 * init_request
	 *
	 * Called at the beginning of a request to setup properties.
	 *
	 * @date    23/5/19
	 * @since   5.8.1
	 *
	 * @param   array $request The request args.
	 * @return  void
	 */
	function init_request( $request ) {

		// Get field for this query.
		if ( isset( $request['field_key'] ) ) {
			$this->field = acf_get_field( $request['field_key'] );
		}

		// Update query properties.
		if ( isset( $request['page'] ) ) {
			$this->page = intval( $request['page'] );
		}
		if ( isset( $request['per_page'] ) ) {
			$this->per_page = intval( $request['per_page'] );
		}
		if ( isset( $request['search'] ) && acf_not_empty( $request['search'] ) ) {
			$this->search    = sanitize_text_field( $request['search'] );
			$this->is_search = true;
		}
		if ( isset( $request['post_id'] ) ) {
			$this->post_id = $request['post_id'];
		}
	}

	/**
	 * get_args
	 *
	 * Returns an array of args for this query.
	 *
	 * @date    31/7/18
	 * @since   5.7.2
	 *
	 * @param   array $request The request args.
	 * @return  array
	 */
	function get_args( $request ) {

		// Allow for custom "query" arg.
		if ( isset( $request['query'] ) ) {
			return (array) $request['query'];
		}
		return array();
	}

	/**
	 * get_items
	 *
	 * Returns an array of results for the given args.
	 *
	 * @date    31/7/18
	 * @since   5.7.2
	 *
	 * @param   array args The query args.
	 * @return  array
	 */
	function get_results( $args ) {
		return array();
	}

	/**
	 * get_item
	 *
	 * Returns a single result for the given item object.
	 *
	 * @date    31/7/18
	 * @since   5.7.2
	 *
	 * @param   mixed $item A single item from the queried results.
	 * @return  array An array containing "id" and "text".
	 */
	function get_result( $item ) {
		return false;
	}
}