Como forçar o layout de uma coluna na página de edição de tipo de postagem personalizada?

3

Eu criei um plug-in usando tipos de postagem personalizados e preciso forçar a página de postagem de duas colunas padrão em uma única coluna. Ao mesmo tempo, o metabólito Publicar deve ser movido para a parte inferior. Eu preciso fazer isso através das funções de alguma forma.

Eu tenho algumas soluções do WPSE, mas a única solução que encontrei atualmente oculta o metabox "Publicar". Eu não consigo descobrir o porquê.

Alguma ideia de como fazer isso?

    
por Armand 13.08.2011 / 04:38

3 respostas

6

Existe um filtro chamado get_user_option_meta-box-order_{$page} em que $page é o nome do tipo de postagem. Apenas certifique-se de que submitdiv seja o último valor no array:

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' => '',
    );
}
    
por Bainternet 13.08.2011 / 16:21
3

Uma abordagem é remover o metabox original e, em seguida, adicionar novamente esse metabox, com parâmetros atualizados. Por exemplo, isso moverá a caixa meta "Imagem em destaque" da coluna lateral para a coluna principal, para um tipo de postagem personalizado com um slug cpt-slug :

Editar

O parâmetro para a caixa meta Publish é submitdiv e o retorno de chamada correto é post_submit_meta_box() ; Atualizei o código abaixo para refletir esses parâmetros corretos. Eu também alterei o parâmetro add_meta_box() $context de 'high' para 'low' , para que a caixa meta Publicar seja adicionada na 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' );
?>

A abordagem deve ser a mesma para a caixa meta "Publicar". Você só precisa remover / adicionar a caixa meta de publicação em vez da meta caixa de imagens em destaque.

    
por Chip Bennett 02.03.2012 / 22:12
0

Oi apenas respondendo a segunda parte da questão que é sobre o "forçando uma coluna", você pode fazê-lo com get_user_option_screen_layout_{Post_type} filter. Para segmentar todos os usuários, você pode fazer isso, por exemplo:

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