Как в WordPress добавить статус публикации для записей?

Часто на сайте WordPress бывает необходимо добавить свой статус публикации записи. Обычно это нужно, когда с контентом веб-ресурса работает много человек. Создание дополнительного статуса позволит улучшить редакционный рабочий процесс.

Что такое статус публикации записей в WordPress?

Перед тем, как что-либо добавлять на сайт, следует рассмотреть, что такое статусы публикации и зачем они нужны.

Итак, статус публикации — это редакторский инструмент, который сообщает WordPress о стадии публикации той или иной записи на сайте во время ее редактирования. Например, записи, которые являются неполными, сохраняются со статусом “Черновик”. Когда вы публикуете статью, статус меняется на “Опубликовано”.

Блок Опубликовать на странице редактирования записи

Статус публикации помогает “движку” выбирать, как обрабатывать и отображать запись на Вашем веб-сайте. Например, он автоматически исключает из вывода публикации, помеченные черновиком, с главной страницы и других общедоступных областей Вашего сайта.

Какими бывают статусы публикации в WordPress?

По умолчанию, система WordPress предлагает к использованию следующие статусы публикации записей:

  • Черновик (Draft). Запись, имеющая этот статус, является сохраненной в базе данных, но неполной и еще не опубликованной.
  • Автосохраненный черновик (Auto draft). WordPress имеет функцию автоматического сохранения, которая автоматически сохраняет черновик как ревизию.
  • Ожидает проверки (Pending). Это записи, которые уже полностью оформлены и заполнены, но ожидают проверки и публикации.
  • Запланированная (Future). Записи с этим статусом уже проверены редактором и ожидают публикации.
  • Приватная (Private). Это записи, доступные для просмотра и редактирования только администраторам.
  • Удаленная (Trash). Записи, находящиеся в Корзине.
  • Дочерняя (Inherit). Это дочерние записи, которые автоматически наследуют статус своей родительской записи.

Как в WordPress создать собственный статус публикации для записей?

Помимо вышеуказанных статусов публикации, доступных в WordPress по умолчанию, Вы также можете создавать свои собственные, чтобы улучшить весь редакционный процесс. Например, вы можете добавить ярлык “Не подходит” для записей, которые являются полными, но не подходящими для публикации.

Для решения поставленной задачи существует несколько способов. Рассмотрим наиболее распространенные из них.

Способ 1. Создание пользовательского статуса записи с помощью плагина

Этот способ является наиболее простым и рекомендуется для большинства пользователей.

Первое, что Вам нужно сделать, это установить и активировать плагин Edit Flow. После активации плагин добавляет новый пункт Edit Flow в меню администратора WordPress. Нажав на нем, Вы перейдете на страницу настроек плагина.

Страница настроек плагина Edit Flow

Видно, что Edit Flow имеет множество полезных функций, которые Вы можете включить/выключить на этой странице. Для выполнения нашей задачи следует нажать кнопку Редактировать статусы в блоке Клиентские статусы, после чего перед Вами откроется страница создания/редактирования статусов публикации записей.

Страница создания/редактирования статусов публикации записей в плагине Edit Flow

Видно, что плагин автоматически создал несколько статусов. Вы можете создать свой собственный статус, указав его название и описание в левом столбце. Когда вы закончите, нажмите кнопку Добавить новый статус, чтобы сохранить изменения. Теперь Ваш пользовательский статус появится в правом столбце, чтобы Вы могли его редактировать или удалять в любое время.

Страница создания/редактирования статусов публикации записей в плагине Edit Flow

Для выбора статуса для той или иной записи, следует открыть ее на редактирование (или создать новую), затем в блоке Опубликовать выбрать созданный статус.

Страница редактирования записи

Способ 2. Создание пользовательского статуса записи с использованием кода

Этот способ будет полезным для тех, кто по каким-либо причинам не желает устанавливать на своем сайте дополнительные плагины. Он предусматривает добавление специального PHP-кода в файл functions.php Вашей активной WordPress-темы.

Если Вы не знаете, как редактировать functions.php, то в этом случае Вам поможет плагин ProFunctions.

Итак, в указанный файл нужно добавить следующие строки кода:

function wpschool_custom_post_status() {
    register_post_status( 'custom_status', array(
        'label' => _x( 'Мой статус', 'post' ),
        'public' => false,
        'exclude_from_search' => false,
        'show_in_admin_all_list' => true,
        'show_in_admin_status_list' => true,
        'label_count' => _n_noop( 'Мой статус <span class="count">(%s)</span>', 'Мой статус <span class="count">(%s)</span>' ),
    ) );
}

function wpschool_append_post_status_list() {
    global $post;
    $complete = '';
    $label = '';
    if( $post->post_type == 'post' ) {
        if( $post->post_status == 'custom_status' ) {
            $complete = ' selected="selected"';
            $label = '<span id="post-status-display"> Мой статус</span>';
        }

        echo '
            <script>
            jQuery(document).ready(function($){
                $("select#post_status").append("<option value=\"custom_status\" '.$complete.'>Мой статус</option>");
                $(".misc-pub-section label").append("'.$label.'");
            });
            </script>';
    }
}

add_action( 'init', 'wpschool_custom_post_status' );
add_action( 'admin_footer-post.php', 'wpschool_append_post_status_list' );

Вставленный код создает новый статус с названием “Мой статус”, которое можно изменить на желаемое.

Курс WordPress-разработчик
Если Вам понравилась статья — поделитесь с друзьями
Михаил Петров
Привет! Меня зовут Михаил Петров. Я копирайтер и занимаюсь этим с 2013 года. Скрупулезность и ответственность - моя фишка! Не могу делать как попало и добиваюсь, чтоб заказчик сказал минимум “неплохо”. За все время своей работы пришлось написать и отредактировать немало разной “текстовухи”, включая SEO-тексты, отзывы и прочую чушь. На сегодняшний день специализируюсь на написании информационных статей и руководств технического направления. Вижу смысл и светлое будущее в текстах для людей, а не для машин.