Добавить новый статус для записи
Хочу добавить новый статус для некоторых постов
Нашел подходящий код, но есть нюанс. Когда меняю статус поста на "архив" меняется кнопка с "обновить" на "опубликовать". Можно сделать чтобы пост имел кнопку обновить со статусом "архив"?
Например если ставить видимость: "личное" то кнопка обновить остается. Возможно добавить статус "архив" в раздел видимость и как это сделать?
Вот мой код
//регистрируем статус поста function true_status_custom(){ register_post_status( 'archive', array( 'label' => 'Архив', 'label_count' => _n_noop( 'Архив <span class="count">(%s)</span>', 'Архивы <span class="count">(%s)</span>' ), 'public' => true, 'show_in_admin_status_list' => true // если установить этот параметр равным false, то следующий параметр можно удалить ) ); } add_action( 'init', 'true_status_custom' ); //Добавление статуса в drop-down статусов на странице редактирования записи function true_append_post_status_list(){ global $post; $optionselected = ''; $statusname = ''; if( $post->post_type == 'post' ){ // если хотите, можете указать тип поста, для которого регистрируем статус, а можете и вовсе избавиться от этого условия if($post->post_status == 'archive'){ // если посту присвоен статус архива $optionselected = ' selected="selected"'; $statusname = "$('#post-status-display').text('Архивировано');"; } /* * Код jQuery мы просто выводим в футере */ echo "<script> jQuery(function($){ $('select#post_status').append('<option value=\"archive\"$optionselected>Архив</option>'); $statusname }); </script>"; } } add_action('admin_footer-post-new.php', 'true_append_post_status_list'); // страница создания нового поста add_action('admin_footer-post.php', 'true_append_post_status_list'); // страница редактирования поста
А есть возможность отредактировать статус "личное" ?
К примеру чтобы посты с этим статусом показывались только зарегистрированным пользователям?
В WordPress пост-статусы — это боль. Зарегистрировать кастомный статус просто, но интегрировать его в UI — сплошной костыль.
Самая большая проблема: на странице редактирования поста твой статус просто не появляется. WordPress заточен под свои publish, draft, pending и т.д. Все остальные надо вручную внедрять в интерфейс и контролировать при сохранении.
Что приходится делать:
Люди пробуют, страдают, делают так же. В плагинах вроде WP Leiki можно подсмотреть реализацию, но там тоже всё на костылях. WordPress просто не предусматривает нормальной поддержки кастомных статусов в админке.
Короче, если хочешь использовать кастомные статусы:
Это не та часть WP, которую можно "просто добавить".