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
Використання не знайдено.