-
Роман ЦукановРазработчик
-
Дата публикации28.12.2022
-
КатегорияWordpress
Задача:Добавить собственный тип постов для фильтрации по нему в административной части сайта.
Очень часто не хватает классических статусов для постов, чтобы их обрабатывать. У нас была огромная excel таблица, в которой было куча информации и шагов. Потом — просто добавили все необходимые статусы, и работаем внутри админки
Сам сниппет, для добавления своего статуса:
function postWaitingForText() {
register_post_status( 'waiting_for_text', array(
'label' => _x( 'В ожидании текста', 'post' ),
'public' => false,
'exclude_from_search' => false,
'show_in_admin_all_list' => true,
'show_in_admin_status_list' => true,
// 'internal' => true,
'label_count' => _n_noop( 'В ожидании текста <span class="count">(%s)</span>', 'В ожидании текста <span class="count">(%s)</span>' ),
) );
}
function postWaitingForTextAppendPostStatusList() {
global $post;
$complete = '';
$label = 'В ожидании текста';
if( $post->post_type == 'post' ) {
if( $post->post_status == 'waiting_for_text' ) {
$complete = ' selected=\"selected\"';
echo '
<script>
jQuery("#post-status-display").text("'.$label.'");
</script>';
}
echo '
<script>
jQuery(document).ready(function($){
jQuery("select#post_status").append("<option value=\"waiting_for_text\" '.$complete.'>'.$label.'</option>");
});
</script>';
}
}
add_action( 'init', 'postWaitingForText' );
add_action( 'admin_footer', 'postWaitingForTextAppendPostStatusList' );
Когда это может быть полезно? Да всегда. У нас, например 1 человек создает черновик, в котором только название статьи. Второй — заказывает текст, а третий текста обрабатывает. В итоге есть определенная цепочка действий. Мы убрали любые иные прокладки и приложения/таблицы и используем только статусы