Для чего нужны свои кастомные статусы? Вариантов как всегда много. Я их использовал всего лишь раз, помечая таким образом товары не попавшие не в одну из категорий при импорте из маркета яндекса.
Ниже, приведен пример создания своего кастомного статуса для записи. Подробнее о всех параметрах описано в официальной документации кодекса WP. Хочу лишь обратить внимание на следующее.
- Параметр "label_count", должен указываться через функцию "_n_noop()"
- Огорчает то, что свои статусы для записей автоматически не отображаются на странице создания/редактирования записи, и в таблицы со списком записей (при наведения на название записи, кнопка свойства).
register_post_status('OUTSIDE', array( 'label' => 'Вне категорий', 'label_count' => _n_noop('Вне категорий <span class="count">(%s)</span>', 'Вне категорий <span class="count">(%s)</span>'), 'public' => true, 'internal' => true, 'exclude_from_search' => true, 'show_in_admin_all_list' => true, 'show_in_admin_status_list' => true, ));
Для этого пришлось использовать "костыль найденный в просторах интернета. А именно:
/* Вызов идет в конструкторе класса */ add_action('admin_footer-post.php', array($this, 'admin_footer_post')); add_action('admin_footer-post-new.php', array($this, 'admin_footer_post')); add_action('admin_footer-edit.php', array($this, 'admin_footer_edit')) /* Просто методы класса */ /** * @hook * - admin_footer-post.php * - admin_footer-post-new.php */ public function admin_footer_post() { if(get_current_screen() -> post_type == 'ya-catalog'): ?> <script> jQuery(document).ready(function() { jQuery('select[name="post_status"]').append('<option value="OUTSIDE">Вне категорий</option>'); }); </script> <?php endif; } /** * @hook admin_footer-edit.php */ public function admin_footer_edit() { if(get_current_screen() -> post_type == 'ya-catalog'): ?> <script> jQuery(document).ready(function() { jQuery('select[name="_status"]').append('<option value="OUTSIDE">Вне категорий</option>'); }); </script> <?php endif; }
Решение не самое элегантное, но это все же лучше чем ничего.