WordPress: Настройки статуса через register_post_status неправильно фильтрует «Все» в списке постов
Есть кастомный вариант статуса поста через register_post_status. и три магических фигни для добавления в select-список при публикации и для отображения статуса в общем списке
Два момента:
В общем списке постов (кастомных!), несмотря на show_in_admin_all_list => false внутри «Все» вижу реально все статусы. хочу не видеть то, что я указал.
При этом счётчик выборки «Все (6)» показывает верное количество. а сама таблица нише пишет «11 элементов», что является реально количеством всех постов всех статусов.
При выборке того, чего мне надо через get_posts с вариантами post_type + post_status оно сходит с ума.
В поисках ответов нашёл нечто, где ссылаются на вялые обсуждения шли 14 (!!!) лет, но тикет закрыт уже:
https://core.trac.wordpress.org/ticket/12706
Куда копать и где и как искать причины?
Детали-примеры:
- Код для регистрации нового статуса:
register_post_status( 'archive', array(
'label' => 'Архив',
'label_count' => _n_noop( 'Архив <span class="count">(%s)</span>', 'Архивы <span class="count">(%s)</span>' ),
'public' => true,
'internal' => true,
'show_in_admin_all_list' => false,
'show_in_admin_status_list' => true,
'exclude_from_search' => true
) );
- Код для выборки нужного типа постов по статусу, который сходит с ума:
$argsArchive = array(
'post_type' => 'events', // события
'post_status' => 'archive', // архив
'posts_per_page' => -1 // все посты
);
$getAllArchiveEvents = get_posts($argsArchive);
Ну прям ничего сверхъественного на первый взгляд-то нет.