display_post_states
Дозволяє додати стан (мітку) запису до таблиці записів у адмінці. Таку мітку стану можна бачити, наприклад, коли запис у чернетці, на затвердженні і т.д.

Використання
add_filter( 'display_post_states', 'wp_kama_display_post_states_filter', 10, 2);
/**
* Function for `display_post_states` filter-hook.
*
* @param string[] $post_states На array of post display states.
* @param WP_Post $post The current post object.
*
* @return string[]
*/
function wp_kama_display_post_states_filter( $post_states, $post ){
// Filter...
return $post_states;
}- $post_states
(Масив) - Масив міток-станів запису.
- $post
(WP_Post) - Об’єкт поточного запису, для якого фільтруються стани.
Приклади
#1 Додамо свої позначки стану запису в таблиці постійних сторінок
Додавати мітки для записів типу page .
мітка для спеціальних сторінок у таблиці page записів
add_filter( 'display_post_states', 'special_page_mark', 10, 2);
function special_page_mark( $post_states, $post ){
if( $post->post_type === 'page' ){
if( $post->post_name === 'my-account' ){
$post_states[] = 'Старінка "Мій обліковий запис"';
}
if( in_array( $post->post_name, ['cart','shop','checkout'] ) ){
$post_states[] = 'Особлива сторінка';
}
}
return $post_states;
}Отримаємо

#2 Видаляємо мітку “Класичний редактор”
Після встановлення плагіна Classic Editor у Записів з’явиться мітка, яка інформує в якому редакторі вона зроблена. Це може зробити таблицю менш читаною:
Видалити таку мітку або будь-яку іншу просто, знаючи її ключ:
add_filter( 'display_post_states', 'remove_classic_editor_mark', 10, 2);
function remove_classic_editor_mark( $post_states, $post ) {
unset( $post_states['classic-editor-plugin'] ); // "Класичний редактор" або "Редактор блоків"
// Статуси постів
unset( $post_states['protected'] ); // Захищено паролем
unset($post_states['private']); // Особисте
unset($post_states['draft']); // Чернетка
unset($post_states['pending']); // На затвердженні
unset($post_states['sticky']); // Приліплена
unset( $post_states['scheduled'] ); // Заплановано
// Особливі мітки
unset($post_states['page_on_front']); // Головна сторінка
unset($post_states['page_for_posts']); // Сторінка записів
unset( $post_states['page_for_privacy_policy'] ); // Сторінка політики конфіденційності
return $post_states;
}
список змін
| З версії 2.8.0 | Введено. |
| З версії 3.6.0 | Added $post parameter. |
| З версії 5.5.0 | Also applied в Customizer context. If any admin functions use used in the filter, their existention should be checked with function_exists() before being used. |
Де викликається хук
display_post_states
wp-admin/includes/template.php 2249
return apply_filters( 'display_post_states', $post_states, $post);
Де використовується хук у WordPress
Використання не знайдено.
