Добавить новый статус для записи
Хочу добавить новый статус для некоторых постов
Нашел подходящий код, но есть нюанс. Когда меняю статус поста на "архив" меняется кнопка с "обновить" на "опубликовать". Можно сделать чтобы пост имел кнопку обновить со статусом "архив"?
Например если ставить видимость: "личное" то кнопка обновить остается. Возможно добавить статус "архив" в раздел видимость и как это сделать?
Вот мой код
//регистрируем статус поста
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, которую можно "просто добавить".