Как добавить пользовательский статус поста в popover в WordPress > 6.4

Вопрос или проблема

Есть ли способ добавить мой вручную добавленный статус записи “Архив” в всплывающее окно записи?
Если да, можете дать мне пример?

Popover

С уважением,

M.

Ответ или решение

Теория:

WordPress предоставляет гибкий интерфейс для работы с произвольными статусами записей, что позволяет разработчикам расширять функциональные возможности платформы. Посты в WordPress оперируют заданными статусами, такими как "Опубликовано", "На рассмотрении", "Черновик" и т.д. Однако, платформа также позволяет добавлять пользовательские статусы записей с помощью API. Пользовательские статусы могут быть полезны для упрощения рабочего процесса в определенных сценариях. Например, статус "Архив" может обозначать записи, которые не должны быть видны на портале, но не удалены из базы данных.

Следует отметить, что пользовательский статус необходимо не только зарегистрировать, но и интегрировать в интерфейс WordPress, чтобы он был доступен пользователям, работающим с записями.

Пример:

Создание пользовательского статуса "Архив" может выглядеть следующим образом:

  1. Регистрация пользовательского статуса записи:
    Чтобы добавить новый пользовательский статус записи, необходимо использовать хук init и функцию register_post_status. Подобный код можно добавить в файл functions.php вашей темы или в отдельный плагин:

    function my_custom_post_status(){
       register_post_status('archiv', array(
           'label'                     => _x('Архив', 'post'),
           'public'                    => true,
           'internal'                  => false,
           'exclude_from_search'       => true,
           '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>'),
       ));
    }
    add_action('init', 'my_custom_post_status');
  2. Добавление пользовательского статуса в выпадающий список изменения статуса записи:
    Чтобы пользовательский статус отображался в popover при редактировании записи, его необходимо добавить в список статусов. Это можно сделать с помощью JavaScript:

    function my_enqueue_scripts($hook) {
       if ('post.php' != $hook && 'post-new.php' != $hook) {
           return;
       }
       wp_enqueue_script('my_custom_post_status_script', get_template_directory_uri() . '/js/custom-status.js', array('jquery'), '', true);
    }
    add_action('admin_enqueue_scripts', 'my_enqueue_scripts');
    
  3. JavaScript для добавления статуса в выпадающий список:
    В файле custom-status.js добавьте следующее:

    jQuery(document).ready(function($) {
       if ($('#post_status').length > 0) {
           $('#post_status').append('<option value="archiv">Архив</option>');
       }
    
       // Для popover
       wp.data.subscribe(function () {
           const currentStatus = wp.data.select("core/editor").getCurrentPostAttribute("status");
           if (currentStatus === 'archiv') {
               $('#post-status-display').text("Архив");
           }
       });
    });

Применение:

Теперь, после регистрации вашего статуса и добавления необходимого JavaScript, у вас должен быть пользовательский статус "Архив", который появляется в popover. Этот статус можно использовать для управления видимостью и поддержания организационного порядка записей внутри вашего ресурса на WordPress.

Чтобы удостовериться, что все изменения происходят корректно, протестируйте добавление, изменение и отображение записей с новым статусом. Возможно, вам также потребуется обновить ваш сайт, чтобы гарантировать, что все ваши измененные JavaScript и PHP файлы загружены и выполняются правильно.

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

Оцените материал
Добавить комментарий

Капча загружается...