Como ocultar tudo em PUBLISH metabox, exceto o botão Mover para o Lixo e PUBLICAR

10

Eu tenho um tipo de postagem personalizado (chamado contatos). Como esse tipo de postagem não está funcionando como uma postagem, não quero exibir SAVE DRAFT, PREVIEW, Status, Visibility ou Publish Date.

As únicas opções que desejo mostrar são PUBLICAR & Mover para os botões da Lixeira.

Existe uma maneira de ocultar essas outras opções? Se não, como faço para criar um novo PUBLISH & Mover para a lixeira que eu posso adicionar a um novo metabox?

    
por katemerart 11.12.2011 / 03:28

2 respostas

13

Você pode simplesmente ocultar as opções usando CSS. Isso adicionará um estilo de exibição: none às ações de publicação diversas e secundárias nas páginas post.php e post-new.php. Ele também verifica um tipo de postagem específico, já que todos os tipos de postagem usam esses dois arquivos.

function hide_publishing_actions(){
        $my_post_type = 'POST_TYPE';
        global $post;
        if($post->post_type == $my_post_type){
            echo '
                <style type="text/css">
                    #misc-publishing-actions,
                    #minor-publishing-actions{
                        display:none;
                    }
                </style>
            ';
        }
}
add_action('admin_head-post.php', 'hide_publishing_actions');
add_action('admin_head-post-new.php', 'hide_publishing_actions');
    
por Brian Fegter 11.12.2011 / 03:57
1

Neste exemplo, você pode definir facilmente em quais tipos de post você deseja ocultar as opções de publicação, o exemplo os oculta para o tipo de tipo de potes internos page e o tipo de postagem personalizado cpt_portfolio .

/**
 * Hides with CSS the publishing options for the types page and cpt_portfolio
 */
function wpse_36118_hide_minor_publishing() {
    $screen = get_current_screen();
    if( in_array( $screen->id, array( 'page', 'cpt_portfolio' ) ) ) {
        echo '<style>#minor-publishing { display: none; }</style>';
    }
}

// Hook to admin_head for the CSS to be applied earlier
add_action( 'admin_head', 'wpse_36118_hide_minor_publishing' );

Atualização importante

Também sugiro que você force um status de postagem de "Publicado" para evitar salvar postagens como rascunhos:

/**
 * Sets the post status to published
 */
function wpse_36118_force_published( $post ) {
    if( 'trash' !== $post[ 'post_status' ] ) { /* We still want to use the trash */
        if( in_array( $post[ 'post_type' ], array( 'page', 'cpt_portfolio' ) ) ) {
            $post['post_status'] = 'publish';
        }
        return $post;
    }
}

// Hook to wp_insert_post_data
add_filter( 'wp_insert_post_data', 'wpse_36118_force_published' );
    
por Nabil Kadimi 01.06.2014 / 00:33