rest_prepare_(taxonomy) хук-фільтрWP 4.7.0

Дозволяє змінити дані терміна у відповіді REST API (безпосередньо перед поверненням).

Назва фільтра формується динамічно виходячи з імені таксономії. Наприклад:

  • rest_prepare_category (для стандартних рубрик, таксономія категорії).
  • rest_prepare_post_tag (для стандартних міток, таксономія post_tag).

Використання

add_filter( 'rest_prepare_(taxonomy)', 'wp_kama_rest_prepare_taxonomy_filter', 10, 3);

/**
 * Function for `rest_prepare_(taxonomy)` filter-hook.
 *
 * @param WP_REST_Response $response The response object.
 * @param WP_Term $item Оригінальний термін об'єкта.
 * @param WP_REST_Request $request Request використовується для створення відповіді.
 *
 * @return WP_REST_Response
 */
function wp_kama_rest_prepare_taxonomy_filter( $response, $item, $request ){

	// Filter...
	return $response;
}
$response
(WP_REST_Response)
Об’єкт відповіді.
$item
(WP_Term)
Об’єкт терміна.
$request
(WP_REST_Request)
Об’єкт запиту, що використовується для створення відповіді.

Приклади

0

#1 Додамо в назву рубрик мову від Polylang при запиту REST

add_filter( 'rest_prepare_category', 'filter_rest_name_category', 10, 3);

/**
 * Змінює назву рубрики при REST запиті в адмінці у віджеті "Рубрики" і т.д.
 *
 * @param WP_REST_Response $response
 * @param WP_Term $item
 * @param WP_REST_Request $request
 *
 * @return WP_REST_Response
 */
function filter_rest_name_category( $response, $item, $request ) {

	// Якщо Polylang не активовано - нічого не робимо.
	if ( ! function_exists( 'pll_get_term_language' ) ) {
		return $response;
	}

	// Якщо це створення нового запису чи редагування старої - нічого не робимо.
	$referer = $request->get_header( 'referer');
	$post_new = '/wp-admin/post-new.php';
	$post_edit = '/wp-admin/post.php';
	if ( strpos( $referer, $post_new ) === false && strpos( $referer, $post_edit ) === false ) {
		return $response;
	}

	// Отримуємо код мови (ru_RU, en_US тощо).
	$lang = pll_get_term_language( $item->term_id, 'locale');

	// Додаємо до імені рубрики інформацію про її мову.
	$response->data['name'] .= "($lang)";

	// Повертаємо модифіковану відповідь.
	return $response;
}

список змін

З версії 4.7.0Введено.

Де викликається хук

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *