postmeta_form_keys хук-фільтрWP 4.4.0

Дозволяє змінити набір метаполів у списку метабоксу “Довільні поля”.

Приклад списку

Якщо фільтр поверне значення відмінне від null, наприклад, порожній масив або масив з рядками, то базовий запит по збору всіх назв метаполів записів для списку, що випадає, буде скасовано, а його результат буде замінений на те що повернулося у фільтрі.

Масив ключів перед виведенням пропускається через функцію сортування natcasesort() .

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

add_filter( 'postmeta_form_keys', 'wp_kama_postmeta_form_keys_filter', 10, 2);

/**
 * Function for `postmeta_form_keys` filter-hook.
 *
 * @param array|null $keys Pre-defined meta keys для використання в місці postmeta query.
 * @param WP_Post $post The current post object.
 *
 * @return array|null
 */
function wp_kama_postmeta_form_keys_filter( $keys, $post ){

	// Filter...
	return $keys;
}
$keys
(масив/null)
Назви метаполів (ключи, колонка
meta_key таблиці
wp_postmeta ), які необхідно відобразити у списку, що випадає.


Типово: null
$post
(WP_Post)
Об’єкт поточного запису.

Приклади

0

#1 Заборонимо отримання ключів усіх метаполів записів

add_filter( 'postmeta_form_keys', '__return_empty_array');
0

#2 Вкажемо жорстко ключі для відображення у списку, що випадає

Вкажемо для всіх cpt встановлений список ключів метаполів:

add_filter( 'postmeta_form_keys', 'filter_postmeta_form_keys');

function filter_postmeta_form_keys(){
	return ['key_field_1', 'key_field_2'];
}
0

#3 Сумісний ключ для відображення у списку, що випадає

Передбачимо, що фільтр може викликатися в різних ділянках коду та додавати ключі метаполів до загального пулу ключів. Також ключі можуть дублюватися і тому їх треба очищати від двійників.

add_filter( 'postmeta_form_keys', 'filter_1_postmeta_form_keys');
add_filter( 'postmeta_form_keys', 'filter_2_postmeta_form_keys');

function filter_1_postmeta_form_keys( $keys ) {

	$my_keys = ['key_field_1', 'key_field_2'];
	$keys = array_merge((array) $keys, $my_keys);

	return array_unique($keys);
}

function filter_2_postmeta_form_keys( $keys ) {

	$my_keys = ['key_field_2', 'key_field_3'];
	$keys = array_merge((array) $keys, $my_keys);

	return array_unique($keys);
}

Результат:

0

#4 Вкажемо ключі лише для ctp=product

add_filter( 'postmeta_form_keys', 'filter_postmeta_form_keys', 10, 2);

function filter_postmeta_form_keys( $keys, $post ) {
	if ( 'product' === get_post_status( $post ) ) {
		$keys = ['stock', 'sale'];
	}

	return $keys;
}

список змін

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

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

postmeta_form_keys

Де використовується хук у WordPress

Використання не знайдено.

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

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