source

사용자 지정 게시 상태가 나타나지 않음

lovecheck 2023. 9. 24. 12:58
반응형

사용자 지정 게시 상태가 나타나지 않음

저는 제 고객의 디렉토리 테마를 구축하고 있으며, 게시물 상태를 게시에서 만료로 수정하여 게시물에 만료되는 기능을 추가하고 싶습니다.

이를 위해 다음 코드를 사용하여 새로운 게시물 상태를 등록하려고 합니다.

add_action('init',    'registerStatus', 0);

function registerStatus()
{
    $args = array(
        'label'                     =>  _x('Expired', 'Status General Name', 'z' ),
        'label_count'               =>  _n_noop('Expired (%s)',  'Expired (%s)', 'z'),
        'public'                    =>  true,
        'show_in_admin_all_list'    =>  true,
        'show_in_admin_status_list' =>  true,
        'exclude_from_search'       =>  true
    );

    register_post_status('expired', $args);
}

문제는 WordPress 게시물에서도, 사용자 지정 게시물 유형의 게시물 상태에서도 등록된 게시물 상태를 볼 수 없다는 것입니다.

내가 뭘 잘못하고 있나요?

Ryan Bayne 덕분에 편집 게시 페이지의 관리자 패널에 사용자 지정 게시 상태를 추가할 수 있었습니다.사용할 수 있는 워드프레스 필터가 없습니다.그의 jQuery 솔루션은 완벽합니다.다른 사용자가 해결책을 찾고 있는 경우 코드는 다음과 같습니다.

add_action( 'post_submitbox_misc_actions', 'my_post_submitbox_misc_actions' );
    function my_post_submitbox_misc_actions(){

    global $post;

    //only when editing a post
    if( $post->post_type == 'post' ){

        // custom post status: approved
        $complete = '';
        $label = '';   

        if( $post->post_status == 'approved' ){
            $complete = 'selected=\"selected\"';
            $label = '<span id=\"post-status-display\"> Approved</span>';
        }

        echo '<script>'.
                 'jQuery(document).ready(function($){'.
                     '$("select#post_status").append('.
                         '"<option value=\"approved\" '.$complete.'>'.
                             'Approved'.
                         '</option>"'.
                     ');'.
                     '$(".misc-pub-section label").append("'.$label.'");'.
                 '});'.
             '</script>';
    }
}

사용자 지정 게시 상태 기능은 (지난 4년 동안 그래왔듯이!) 아직 개발 중입니다. https://core.trac.wordpress.org/ticket/12706, 을 참조하고 https://wordpress.stackexchange.com/q/67655/25765 에 댓글을 달아주세요.여기서 더 유용한 정보는 https://wordpress.stackexchange.com/search?q=register_post_status 입니다.

개인적으로, 사용자 지정 게시 상태를 구현하는 것을 강력히 반대하지만, 정말로 필요하다면 Edit Flow 플러그인이 어떻게 처리하는지 확인할 수 있습니다.

이 기능은 향후 개발을 위해 아직 보류 중입니다.

주의: 이 기능은 등록된 게시물 상태를 관리자 패널에 추가하지 않습니다.이 기능은 향후 개발 중입니다.트랙티켓 #12706을 참고해주시기 바랍니다.이 매개 변수를 추가하기 위한 작업 후크 post_submitbox_misc_actions를 고려합니다.

현재 2014년 11월이며 여전히 사용자 지정 상태에 대한 문제입니다.원래 게시된 코드는 괜찮은 것 같습니다.사용자 지정 게시 상태를 구현할 때 발생하는 문제를 보여주는 동영상입니다.게시물 쿼리를 확인하고 사용자 지정 쿼리를 수행하는 등의 해결 방법이 있을 수 있지만 저는 조사를 시작하지 않았습니다.

사용자 지정 상태 적용 시 All table에 표시되지 않는 게시물의 스크린캐스트, 다만, 각 사용자 지정 상태별로 테이블 뷰에서 게시물을 확인할 수 있습니다.짧은 클립을 보려면 여기를 클릭합니다.

제가 새로운 WTG Tasks Manager 플러그인을 작업하는 동안 해당 스크린캐스트가 진행되었습니다.저는 플러그인에 제 디자인을 그대로 둘 것이고 그것이 워드프레스의 이 분야의 개선을 촉진하는 데 도움이 되기를 바랍니다.

적절한 답변을 위해...사용자 지정 게시 유형에 대한 게시물 편집 화면에 사용자 지정 상태가 표시되므로 가능합니다.사용자 지정 게시물 유형 및 상태에 대한 플러그인 등록을 보려면 "posttype/tasks.php" 디렉토리로 이동하여 작동 예제를 가지고 재생합니다.여기 플러그인 공식 페이지가 있습니다.

https://wordpress.org/plugins/wtg-tasks-manager/

언급URL : https://stackoverflow.com/questions/20298346/custom-post-status-not-appearing

반응형