Cómo ocultar TODO en el metabox PUBLISH excepto el botón Move to Trash & PUBLISH

10

Tengo un tipo de mensaje personalizado (llamado contactos). Dado que este tipo de publicación no funciona como una publicación, no quiero mostrar la opción GUARDAR BORRADOR, VISTA PREVIA, Estado, Visibilidad o Fecha de publicación.

Las únicas opciones que quiero mostrar son PUBLISH & Mover a los botones de la papelera.

¿Hay alguna manera de ocultar estas otras opciones? Si no, ¿cómo creo un nuevo PUBLISH & ¿Mover a la Papelera que puedo agregar a un nuevo metabox?

    
pregunta katemerart 11.12.2011 - 03:28

2 respuestas

13

Puedes simplemente ocultar las opciones usando CSS. Esto agregará una pantalla: ningún estilo a las acciones de publicación misceláneas y menores en las páginas post.php y post-new.php. También busca un tipo de publicación específico, ya que todos los tipos de publicaciones usan estos dos archivos.

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');
    
respondido por el Brian Fegter 11.12.2011 - 03:57
1

En este ejemplo, puede establecer fácilmente en qué tipos de publicaciones desea ocultar las opciones de publicación, el ejemplo las oculta para los tipos de macetas incorporados tipo page y el tipo de publicación 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' );

Actualización importante

También sugeriría que fuerce un estado de publicación de "Publicado" para evitar guardar publicaciones como borradores:

/**
 * 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' );
    
respondido por el Nabil Kadimi 01.06.2014 - 00:33

Lea otras preguntas en las etiquetas