¿Cómo forzar el diseño de una columna en la página de edición de tipo de publicación personalizada?

3

He creado un complemento utilizando tipos de publicación personalizados y debo forzar la página de publicación de dos columnas predeterminada en una sola columna. Al mismo tiempo, el metabox Publicar debe moverse a la parte inferior. Tengo que hacer esto a través de las funciones de alguna manera.

Tengo algunas soluciones de WPSE, pero la única solución que encontré en realidad oculta el metabox "Publicar". Parece que no puedo entender por qué.

¿Alguna idea de cómo hacer esto?

    
pregunta Armand 13.08.2011 - 04:38

3 respuestas

6

Hay un filtro llamado get_user_option_meta-box-order_{$page} donde $page es el nombre del tipo de publicación. Solo asegúrese de que submitdiv sea el último valor en la matriz:

add_filter( 'get_user_option_meta-box-order_post', 'wpse25793_one_column_for_all' );
function wpse25793_one_column_for_all( $order )
{
    return array(
        'normal'   => join( ",", array(
            'postexcerpt',
            'formatdiv',
            'trackbacksdiv',
            'tagsdiv-post_tag',
            'categorydiv',
            'postimagediv',
            'postcustom',
            'commentstatusdiv',
            'slugdiv',
            'authordiv',
            'submitdiv',
        ) ),
        'side'     => '',
        'advanced' => '',
    );
}
    
respondido por el Bainternet 13.08.2011 - 16:21
3

Un enfoque es eliminar el metabox original, y luego volver a agregar ese metabox, con parámetros actualizados. Por ejemplo, esto moverá el cuadro de meta "Imagen destacada" de la columna lateral a la columna principal, para un tipo de publicación personalizada con un slug cpt-slug :

Editar

El parámetro para el cuadro de meta de publicación es submitdiv , y la devolución de llamada correcta es post_submit_meta_box() ; He actualizado el código a continuación para reflejar estos parámetros correctos. También he cambiado el parámetro add_meta_box() $context de 'high' a 'low' , de modo que el cuadro de meta Publicar se agregará en la parte inferior:

<?php
function wpse25793_move_post_metaboxes( $post ) {
    global $wp_meta_boxes;

    remove_meta_box( 'submitdiv', 'cpt-slug', 'side' );
    add_meta_box( 'submitdiv', __( 'Publish' ), 'post_submit_meta_box', 'cpt-slug', 'normal', 'low' );
}
add_action( 'add_meta_boxes_cpt-slug', 'wpse25793_move_post_metaboxes' );
?>

El enfoque debe ser el mismo para el cuadro de meta "Publicar". Solo necesita eliminar / agregar el cuadro de meta de publicación en lugar del cuadro de meta de imagen destacada.

    
respondido por el Chip Bennett 02.03.2012 - 22:12
0

Hola, solo respondiendo a la segunda parte de la pregunta, que trata de "forzar una columna", puedes hacerlo con el filtro get_user_option_screen_layout_{Post_type} . Para apuntar a todos los usuarios, puede hacer esto por ejemplo:

add_filter( 'get_user_option_screen_layout_spectacle',
  function( $result, $option, $user ){
    if( !empty($user) ):
       $result = '1';
    endif;
return $result;
  }, 
10, 3 );
    
respondido por el CRavon 03.12.2018 - 13:55

Lea otras preguntas en las etiquetas