Customizando a administração do WordPress

Olá pessoal! Hoje vou abordar uma parte de WordPress que muitos gostariam de saber como editar mas por ser meio complicado desistem. Essa parte de configuração é extremamente útil a quem cria um website para um cliente, mas gostaria que alguns campos não estivecem disponíveis para ele, além de que fica completamente fácil de se utilizar  o painel por um cliente inexperiente. Confira como é fácil!

Remover Widgets do Painel

Provavelmente um dos aborrecimentos com a área de administração do WordPress padrão número um é o grande número de widgets no painel de controle. Com certeza você pode removê-los, Configurando o “opções de tela”, mas isso só se aplica ao seu perfil de usuário pessoal. E se você quer se livrar de algumas para todos os usuários, especialmente os clientes de novo para WordPress?

É realmente muito simples. Colocando um pouco de código em seu arquivo functions. php, podemos remover qualquer um dos widgets que desejamos.

// remove dashboard widgets
function example_remove_dashboard_widgets() {
// load the metaboxes array as a global variable
global $wp_meta_boxes;

// we need to manually unset each widget
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']);
}

// Hoook into the 'wp_dashboard_setup' action to remove the widgets defined above
add_action('wp_dashboard_setup', 'example_remove_dashboard_widgets' );

O código acima irá remover o widget Quick Press do painel. Para remover outros, indicarei abaixo a lista das funções.

Aqui está uma lista de todos os nomes de widget diferentes:

Coluna Main
$wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']
$wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']
$wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']
$wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']

Coluna Side
$wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']
$wp_meta_boxes['dashboard']['side']['core']['dashboard_recent_drafts']
$wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']
$wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']

 

Se quiséssemos remover todos eles, nossa função ficaria assim:

// remover widgets do painel
function remove_widgets_painel() {
// load the metaboxes array as a global variable
global $wp_meta_boxes;

// side de widgets
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_recent_drafts']);
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']);
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']);

// widgets normais
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']);
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']);
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']);
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']);
}

// adiciona a ação para o funcionamento da remoção dos widgets
add_action('wp_dashboard_setup', 'remove_widgets_painel' );

A remoção de itens de menu do painel WordPress

Outra forma que podemos fazer WordPress para tornar mais fácil a utilização do painel por nossos clientes, é através da remoção de ligações desnecessárias no menu principal do painel.

Digamos, por exemplo, que você tem a configuração de um site que usa posts e páginas, mas não de links. Não há realmente nenhuma razão para que o menu de links para estar disponível para o seu cliente se eles nunca vi usá-lo.

Nós podemos remover o menu de links com essa função:

// function para remover o menu links
function remove_menus()
{
// a variável global menu de configuração
>global $menu;
// this is an array of the menu item names we wish to remove
$restricted = array( __('Links'));
end ($menu);

while (prev($menu))
{
$value = explode(' ',$menu[key($menu)][0]);

if(in_array($value[0] != NULL?$value[0]:"" , $restricted))
{
unset($menu[key($menu)]);
}
}
}
// hook into the action that creates the menu
add_action('admin_menu', 'remove_menus');

A variavel $restricted é uma matriz que contém uma lista de todos os itens de menu que gostaríamos de remover do menu do WordPress. Assim, para remover mais do que apenas os links, teremos que adicionar os outros como este:

// function to remove the Links menu item
function remove_menus()
{
// setup the global menu variable
global $menu;
// this is an array of the menu item names we wish to remove
$restricted = array( __('Links'),__('Tools'),__('Settings'),__('Comments'));
end ($menu);

while (prev($menu))
{
$value = explode(' ',$menu[key($menu)][0]);

if(in_array($value[0] != NULL?$value[0]:"" , $restricted))
{
unset($menu[key($menu)]);
}
}
}
// hook into the action that creates the menu
add_action('admin_menu', 'remove_menus');

Nós agora ter removido links, ferramentas, definições e comentários do menu de WordPress.

Remover caixas de Meta de tela do editor

Outra área principal de confusão para clientes não familiarizados com WordPress, é a caixa campos personalizados de postagem e páginas. E vamos enfrentá-los haha. Realmente faz qualquer sentido em tudo, a menos que você é experiente com o WordPress? Não. E também, se você estiver usando os campos para puxar algum conteúdo no seu site, então, não há nenhuma razão para não removê-los de um site que você está entregando a um cliente.

Nossa função para remover os campos personalizados tem esta aparência:

function remove_campos_personalizados() {
<pre>// remove os campos personalizados da tela de post ou novo post</pre>
remove_meta_box( 'postcustom' , 'post' , 'normal' );
<pre>// remove os campos personalizados da tela de página ou nova página</pre>
remove_meta_box( 'postcustom' , 'page' , 'normal' );
}
add_action( 'admin_menu' , 'remove_campos_personalizados' );

Podemos estender essa função para retirar outras caixas de meta desnecessárias também. Esta próxima função removerá cada caixa na tela do editor post/página, tirando-os aos seus mínimos (às vezes é melhor):

function remove_extra_meta_boxes() {
remove_meta_box( 'postcustom' , 'post' , 'normal' ); // campos personalizados para posts
remove_meta_box( 'postcustom' , 'page' , 'normal' ); // campos personalizados para páginas
remove_meta_box( 'postexcerpt' , 'post' , 'normal' ); // campo de resumo do post
remove_meta_box( 'postexcerpt' , 'page' , 'normal' ); // campo de resudo da página
remove_meta_box( 'commentsdiv' , 'post' , 'normal' ); // comentários recentes do post
remove_meta_box( 'commentsdiv' , 'page' , 'normal' ); // comentários recentes da página
remove_meta_box( 'tagsdiv-post_tag' , 'post' , 'side' ); // tags dos posts
remove_meta_box( 'tagsdiv-post_tag' , 'page' , 'side' ); // tags das páginas
remove_meta_box( 'trackbacksdiv' , 'post' , 'normal' ); // trackbacks de posts
remove_meta_box( 'trackbacksdiv' , 'page' , 'normal' ); // trackbacks de páginas
remove_meta_box( 'commentstatusdiv' , 'post' , 'normal' ); // permitir comentários em posts
remove_meta_box( 'commentstatusdiv' , 'page' , 'normal' ); // permitir comentários em páginas
remove_meta_box('slugdiv','post','normal'); // slug de post
remove_meta_box('slugdiv','page','normal'); // slug de página
remove_meta_box('pageparentdiv','page','side'); // Página Parente
}
add_action( 'admin_menu' , 'remove_extra_meta_boxes' );

Remover / Editar colunas de post browser

Ao navegar através das listas de postagens / páginas no seu painel de controle do WordPress, por vezes, pode ser necessário remover determinadas colunas do layout. Por exemplo, talvez você desativou tags para cargos e respectivos não tem nenhuma razão para exibir uma coluna de “Tags”. Se esse for o caso, então, não é muito difícil retirar.

Essa função representa as colunas padrão. Se você colá-lo em seu function.php, você não verá qualquer diferença nas suas colunas.

function remove_post_columns($posts_columns) {
// Deletar colunas existentes
$posts_columns = array(
"cb" => "",
"title" => "Title",
"author" => "Author",
"categories" => "Categories",
"tags" => "Tags",
"date" => "Date",
"comments" => '
<div class="vers">
<img src="' . esc_url( admin_url( 'images/comment-grey-bubble.png' ) ) . '" alt="Comments" /></div>
',
);

return $posts_columns;
}
add_filter('manage_posts_columns', 'remove_post_columns');

Mas agora, a função a seguir vai se livrar da coluna “Tags” e você não ira mais visualziar ela em seu painel:

function remove_post_columns($posts_columns) {
// Deletar coluna existente
$posts_columns = array(
"cb" => "",
"title" => "Title",
"author" => "Author",
"categories" => "Categories",
"date" => "Date",
"comments" => '
<div class="vers">
<img src="' . esc_url( admin_url( 'images/comment-grey-bubble.png' ) ) . '" alt="Comments" /></div>
',
);

return $posts_columns;
}
add_filter('manage_posts_columns', 'remove_post_columns');

Simplesmente removendo as “tags” = > “Tags” , removemos a coluna inteiramente. Nós também pode reordenar o layout das colunas, porém nosso desejo, simplesmente alterando a ordem das linhas na matriz $post_columns.

function remove_post_columns($posts_columns) {
// Deletar coluna existente
$posts_columns = array(
"cb" => "",
"title" => "Title",
"date" => "Date",
"tags" => "Tags",
"categories" => "Categories",
"author" => "Author",
"comments" => '
<div class="vers">
<img src="' . esc_url( admin_url( 'images/comment-grey-bubble.png' ) ) . '" alt="Comments" /></div>
',
);

return $posts_columns;
}
add_filter('manage_posts_columns', 'remove_post_columns');

Isso nos dará a ordem das colunas de: (checkbox), título, data, tags, categorias, autor, comentários.

Este post deve ajudá-lo em muitas das personalizações que você talvez precise fazer em sua área de administração do WordPress, mas se você gostaria de ir a alguns passos adicionais, aqui estão alguns links excelente para você chegar lá:

Posts Relacionados:

Autor: Anderson Narciso

Compartilhe

9 Comentários

  1. avatar

    Cara na mosca. Era EXATAMENTE a solução que precisava quando fiz a pesquisa no google. hehe

    Muito Obrigado!

  2. Qualquer dúvida diz ae =)

  3. avatar

    Muito Bom o Artigo!!!!!!!!! Parabéns.

  4. avatar

    Cara, muito obrigado, me ajudou muito…
    Parabéns pelo seu blog… Abraços!

  5. avatar

    Olá Anderson! Parabéns pelo post! Muito útil! Obrigado!
    Só uma pequena correção. No exemplo para remover todos os widgets os rascunhos recentes faltou o dashboard na frente. Está só como recente_drafts, dessa forma: unset($wp_meta_boxes['dashboard']['side']['core']['recent_drafts']);

    Abraço!

  6. É isso ai Alexandre, bem observado e obrigado :)

  7. avatar

    Grande Anderson! Boa cara, parabéns!

    Como remover meta boxes criados por plugins? você sabe?

    Abs

  8. avatar

    Velho, mto bom esse post justamente o q eu tava procurando, foi dificil axar.

    Eu gsotaria de saber como seria para adcionar ou remover colunas numa pagina de conteudo customizavel(custom post type)? tipo colocar uma coluna para as taxonomias..

    abraço!

Comentar