워드프레스에서는 기본적으로 8개의 상태가있다 하지만 워드프레스를 사용하면서 포스트를 사용하는 목적이 다른 독자적인 목적이 있다면 새로운 상태가 필요 할 수도 있다.
워드프레스의 기본 상태는
- Publish – 모두가 볼 수 있습니다
- Future – 스게줄에 설정된 날짜에 게시될 예정입니다
- Draft – 아직 완료되지 않았으며 권한이 있는 사람들이 볼 수 있는 게시물 입니다
- Pending – 게시할 권한이 있는 사용자를 기다리고 있습니다
- Private – 관리자 수준의 사용자만 볼 수 있습니다
- Trash – 삭제된 게시물
- Auto Draft – 편집 과정에서 WordPress에 의해 자동 생성된 게시물
- Inherit – 첨부 파일과 같은 종속 게시물과 함께 사용
functions.php
를 사용하여 커스텀 상태 등록
// 게시물 사용자 정의 상태 등록
function register_custom_post_status(){
register_post_status( 'In Writing', array(
'label' => _x( 'In Writing', 'post' ),
'public' => true,
'exclude_from_search' => false,
'show_in_admin_all_list' => true,
'show_in_admin_status_list' => true,
'label_count' => _n_noop( 'In Writing <span class="count">(%s)</span>', 'In Writing <span class="count">(%s)</span>' ),
) );
}
add_action( 'init', 'register_custom_post_status' );
Code language: PHP (php)
기본 옵션을 설정하여 ‘waiting’ 상태를 등록하였습니다.
기본 사양에서 게시물 상태 캡션을 적용하였으며 게시물의 가시성을 제어하기 위해 exclude_form_search => false
로 비활성화했습니다.
워드프레스 관리자 편집화면에서 post status 표시하기
게시물을 편집할때 상태 드롭다운에 새로 생성된 게시물 상태 옵션을 추가하는 스크립트
// 게시물 편집화면에서 사용자 지정 상태 옵션을 표시합니다
function display_custom_post_status_option(){
global $post;
$complete = '';
$label = '';
if($post->post_type == 'post'){
if($post->post_status == 'in-writing'){
$selected = 'selected';
}
echo '<script>
$(document).ready(function(){
$("select#post_status").append("<option value=\"in-writing\" '.$selected.'>In Writing</option>");
$(".misc-pub-section label").append("<span id=\"post-status-display\"> In Writing</span>");
});
</script>
';
}
}
add_action('admin_footer', 'display_custom_post_status_option');
Code language: PHP (php)
플러그인
커스텀 상태만 등록한다고하면 위 코드보다는 아주 심플한 플러그인을 설치해서 사용합니다.
- https://phppot.com/wordpress/creating-custom-post-status-in-wordpress/