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

Якщо фільтр поверне значення відмінне від 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) - Об’єкт поточного запису.
Приклади
#1 Заборонимо отримання ключів усіх метаполів записів
add_filter( 'postmeta_form_keys', '__return_empty_array');
#2 Вкажемо жорстко ключі для відображення у списку, що випадає
Вкажемо для всіх cpt встановлений список ключів метаполів:
add_filter( 'postmeta_form_keys', 'filter_postmeta_form_keys');
function filter_postmeta_form_keys(){
return ['key_field_1', 'key_field_2'];
}
#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);
}
Результат:
#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
Використання не знайдено.

