Definindo posições e visibilidade de painéis e metaboxes de edição do administrador para TODOS os usuários e administradores

10

Minha configuração do WP 3.3 envolve vários tipos de postagem e painéis de edição personalizados com o plug-in Advanced Custom Fields (que cria muitos metaboxes) e outros plugins, como o painel metabox de SEO, as conexões Posts2Posts do Scribu e muito mais.

O problema é que a ordem de aparência desses painéis geralmente é bastante aleatória (mesmo que o Adavanced Custom Fields ofereça algum tipo de pedido, mas nem sempre funciona, pois outros plugins não o possuem e, além disso, talvez eu queira alterar a metabox posições de acordo com os tipos de postagem).

Agora, o Wordpress permite que cada administrador / usuário com direitos apropriados organize os metaboxes nos painéis de edição da maneira que ele / ela deseja. No entanto ... todo administrador tem que organizar seus próprios !! Não existe uma maneira de preparar um pedido padrão / fixo ou permitir que o superadministrador ou um administrador em particular defina a posição dos painéis para TODOS?

Eu tenho pelo menos 4 administradores e poucos editores / autores ... não faz sentido eu ter que configurar seus painéis fazendo login com CADA uma de suas contas ... é estúpido e demorado, e confuso para usuários não experientes no wordpress .

Existe algum plug-in ou snippet de código que possa ajudar meu caso?

obrigado

unfulvio
fonte
alguém perguntou as mesmas quetsions em fóruns wp 1 ano, o tema foi deixado sem respostas, não resolvidas e alguns administrador fechou o fio wordpress.org/support/topic/...
unfulvio

Respostas:

7

Você pode remover as meta boxes padrão com remove_meta_box e adicioná-las novamente em uma posição diferente com add_meta_box:

add_action('do_meta_boxes', 'wpse33063_move_meta_box');

function wpse33063_move_meta_box(){
    remove_meta_box( 'postimagediv', 'post', 'side' );
    add_meta_box('postimagediv', __('Featured Image'), 'post_thumbnail_meta_box', 'post', 'normal', 'high');
}

A resposta acima é do seguinte tópico: Como alterar a posição padrão das meta boxes do WP?

ATUALIZAR

Se a principal frustração é puramente a quantidade de meta boxes disponíveis e você não acha que cada usuário precisa de todas as caixas, pode ocultá-las das funções de usuário mais baixas ou de todas as funções usando o código a seguir adicionado ao arquivo functions.php. NOTA - Esse método simplesmente oculta a meta box e não as desativa ou remove.

//Hide Post Page Options from all except Administrator
if (!current_user_can('administrator')){
function hide_post_page_options() {
global $post;
$hide_post_options = "<style type=\"text/css\"> #wptotwitter_div, wpseo_meta, #al2fb_meta, #misc-publishing-actions .misc-pub-section label, #misc-publishing-actions .misc-pub-section #post-status-display, #misc-publishing-actions .misc-pub-section .edit-post-status, #visibility.misc-pub-section, .al2fb_post_submit, #slugdiv, #edit-slug-box, #screen-options-link-wrap { display: none; }</style>";
print($hide_post_options);
}
add_action( 'admin_head', 'hide_post_page_options'  );
}

//Hide Post Page Options from ALL users
function hide_all_post_page_options() {
global $post;
$hide_all_post_options = "<style type=\"text/css\"> #taxonomy-category li.hide-if-no-js, #commentstatusdiv, #wypiekacz_sectionid, #postexcerpt, #trackbacksdiv, #postcustom, #yarpp_relatedposts { display: none !important; }</style>";
print($hide_all_post_options);
}
add_action( 'admin_head', 'hide_all_post_page_options'  );

Basicamente, você só precisa digitar o div id ou a classe separados por vírgula. Acabei de deixar a minha lá para mostrar que todos os tipos de meta boxes e áreas podem estar ocultos.

#wptotwitter_div - WP to Twitter plugin
#wpseo_meta - Wordpress SEO by Yoastplugin
#al2fb_meta, .al2fb_post_submit - Add Link to Facebookplugin
#misc-publishing-actions .misc-pub-section label, #misc-publishing-actions .misc-pub-section #post-status-display, #misc-publishing-actions .misc-pub-section .edit-post-status, #visibility.misc-pub-section - Default Wordpress Publish Status and Visibility
#slugdiv, #edit-slug-box - The post slug
#screen-options-link-wrap - The "Screen Options" tab at the top of the page
#taxonomy-category li.hide-if-no-js - The "Most Used" categories tab
#commentstatusdiv - The comments on the post
#wypiekacz_sectionid - Wypiekacz plugin
#postexcerpt - Post excerpt
#trackbacksdiv - Trackbacks
#postcustom - Custom post fields
#yarpp_relatedposts - Yet Another Related Posts Plugin

(Coloquei os exemplos em "código" porque o SE usa # para representar um cabeçalho)

Eu pensei que jogaria isso fora para você porque, como você, fiquei extremamente frustrado com todas as meta boxes, mas, no final das contas, acho que foi o grande número de caixas indesejadas. Para um "autor" no meu site, ele agora é muito simplificado: título, conteúdo, salvar como rascunho, publicar agora ou agendar a publicação, tags, categorias e imagem em destaque ... Sem nenhuma confusão.

Travis Pflanz
fonte
Isso não resolve o meu problema, gostaria de fazer isso copiando minhas configurações de wysiwyg para todos os usuários (então defino a aparência dos painéis de uma vez por todas); razão: alguns plugins adicionam seus próprios metaboxes; Além disso, para diferentes tipos de post, eu quero colocar os metaboxes de acordo. Add_meta_box só tem normal / alto / baixo ... com muitos metaboxes que não ajudam. Os campos personalizados avançados têm pelo menos um número para pedido, mas não funcionam bem na presença de outros metaboxes. A melhor maneira de fazer isso seria wysiwyg ...
unfulvio
Você usa e precisa de todas as meta boxes adicionais criadas por plugins? Eu pergunto porque, para mim, todas as meta boxes desnecessárias são o que sempre me frustra. Se esse for realmente o seu caso, eu atualizei acima que, talvez, se você simplesmente ocultar as caixas que não são necessárias para determinadas funções de usuário, seu problema possa ser eliminado ... Com certeza foi por mim!
Travis Pflanz #
Por que você não remove os metaboxes pelo usuário, em vez de simplesmente ocultá-los com estilo?
Stephen Harris
Nem tudo o que removo é uma meta box, algumas são partes de meta boxes, então imaginei que usaria apenas uma função, em vez de duas.
Travis Pflanz
Travis, obrigado por gastar mais com isso. No entanto, a solução CSS não resolve o problema de mover metaboxes (sua solução anterior de filtragem e reposicionamento parcialmente resolve). Como mencionei anteriormente, minha configuração possui muitos tipos de post personalizados com metaboxes especiais que eu criei e eles precisam estar lá. Na verdade, há muito poucos que eu quero ocultar (mas eles serão úteis para alguns administradores, por isso não quero removê-los permanentemente e ocultar pelo CSS não é uma boa jogada). Ainda não encontrei uma solução satisfatória para esse problema. Obrigado de qualquer maneira pelo esforço.
Unfulvio
1

Você já olhou para o plugin Adminimize ?

Ele permite que você ative / desative as meta boxes por função de usuário e também configure a posição. Demora um pouco para configurá-lo e a documentação é decente, embora irregular em alguns lugares, mas deve ser capaz de lidar com o que você está descrevendo.

JCL1178
fonte
Esse plugin não permite "configurar a posição", apenas visibilidade. É um plugin muito bom, tho .. #
frnhr 16/02/2013
Confessarei não ter olhado tão de perto para o plug-in, mas se ele pode manipular um, provavelmente pode ser feito para manipular o outro por meio de algumas adições de código. É um bom ponto de partida.
JCL1178