Для чего нужны свои кастомные статусы? Вариантов как всегда много. Я их использовал всего лишь раз, помечая таким образом товары не попавшие не в одну из категорий при импорте из маркета яндекса.
Ниже, приведен пример создания своего кастомного статуса для записи. Подробнее о всех параметрах описано в официальной документации кодекса 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;
}
Решение не самое элегантное, но это все же лучше чем ничего.
