WordPress: Настройки статуса через register_post_status неправильно фильтрует «Все» в списке постов

Есть кастомный вариант статуса поста через register_post_status. и три магических фигни для добавления в select-список при публикации и для отображения статуса в общем списке

Два момента:

  1. В общем списке постов (кастомных!), несмотря на show_in_admin_all_list => false внутри «Все» вижу реально все статусы. хочу не видеть то, что я указал.

    При этом счётчик выборки «Все (6)» показывает верное количество. а сама таблица нише пишет «11 элементов», что является реально количеством всех постов всех статусов.

  2. При выборке того, чего мне надо через get_posts с вариантами post_type + post_status оно сходит с ума.

В поисках ответов нашёл нечто, где ссылаются на вялые обсуждения шли 14 (!!!) лет, но тикет закрыт уже:

https://core.trac.wordpress.org/ticket/12706

Куда копать и где и как искать причины?


Детали-примеры:

  1. Код для регистрации нового статуса:
  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
  ) );
  1. Код для выборки нужного типа постов по статусу, который сходит с ума:
$argsArchive = array(
  'post_type'      => 'events', // события
  'post_status'    => 'archive', // архив
  'posts_per_page' => -1 // все посты
);
$getAllArchiveEvents = get_posts($argsArchive);

Ну прям ничего сверхъественного на первый взгляд-то нет.


Ответы (0 шт):