Continuando o artigo do colega Diogo Espinha sobre Personalizando o Painel de Administração do WordPress para os seus Clientes, nesta segunda parte iremos mostrar como poderá remover menus desnecessários na administração do WordPress. Por vezes não queremos que nossos clientes tenham acesso a todas as partes que criam as funcionalidades do website em WordPress, tais como, desinstalar plugins, mudar o tema ou modificar definições das opções globais. No início, quando comecei a criar sites em WordPress eu dava a liberdade aos meus clientes de poderem modificar tudo o que quisessem, dando acesso ao painel de administração com privilégios de administrador. No entanto, em alguns casos, os meus clientes eram mais “curiosos” que “conhecedores” da ferramenta e isso permitiu a desconfiguração de alguns sites.
Neste momento, continuando a dar acesso como administrador, retiro alguns paineis que acho desnecessários para o normal funcionamento do site, como por exemplo, a secção de mudança de tema. O cliente não necessita de ficar a saber o que é um tema e que o pode mudar se aquilo que ele pretende é um site com o seu próprio layout. O cliente também não precisa ficar sabendo que existem plugins, ou pelo menos, não deve ter acesso à desinstalação dos plugins críticos para o bom funcionamento do seu site. São estas pequenas mudanças que efetuo atualmente.

COMO ALTERAR OS MENUS DO WORDPRESS
Para simplificar o processo de criação de conteúdo por parte do cliente, tornar o WordPress um ambiente mais apelativo é essencial! Para quem não precisa de funcionalidades como os links, funcionalidades de blogs e comentários, torna-se mais simples se você retirar isso da visão do cliente.
Felizmente, existe uma action hook que nos pode ajudar nesse assunto: add_action( ‘admin_menu’ ); Vamos criar um plugin específico para tratar disto:
<?php
/*
Plugin Name: Simplificar Painel
Author: Escola WordPress
Description: Remove alguns menus que não são necessários em alguns sites.
Version: 1.0
*/
add_action( 'admin_menu', 'custom_remove_menus' );
function custom_remove_menus() {
// Removendo a página das Categorias
remove_submenu_page( 'edit.php', 'edit-tags.php?taxonomy=category' );
// Removendo a edição de posts - funcionalidade de blog
remove_menu_page( 'edit.php' );
// Removendo o menu de acesso aos comentários
remove_menu_page( 'edit-comments.php' );
// Removendo o menu de Ferramentas
remove_menu_page( 'tools.php' );
// Removendo o gestor de Links
remove_menu_page( 'link-manager.php' );
// Removendo o gestor de Temas
remove_menu_page( 'themes.php' );
// Removendo o gestor de Plugins
//remove_menu_page( 'plugins.php' );
}
A action hook processa a função que irá tratar de chamar sucessivas vezes as funções remove_menu_page e remove_submenu_page. Desta forma você poderá remover o que quiser ou não. Basta simplesmente comentar (inserir // antes do código) para deixar essa funcionalidade intacta ou descomentar para remover do menu a funcionalidade pretendida.
GERIR SITES SIMPLES COM O WORDPRESS
Já sabemos que o WordPress é bastante poderoso tanto quando atuando como um simples gestor de blogs assim como quando atuando como um verdadeiro CMS. Você conseguirá tirar o máximo de partido do WordPress de qualquer uma das maneiras. Acontece que, em alguns casos, o WordPress disponibiliza funcionalidades em demasia para o website que estamos a implementar. Websites que necessitem apenas de 4 ou 5 páginas de conteúdo, poderá ser como “um castigo” para quem vai gerir esse conteúdo. A solução passa por remover funcionalidades, seja como descrito em cima ou através de um plugin.
Felizmente os colegas da PixoPoint contribuiram para a comunidade através de uma solução de plugin que converte o WordPress num CMS básico para gestão de websites estáticos simples. Esse plugin remove todo o tipo de funcionalidades complicadas que vem por defeito com o WordPress e que não são necessárias para este tipo de sites.

DOWNLOAD e INSTALAÇÃO
Você poderá fazer o download gratuito do plugin clicando aqui.
Depois de ter consigo em posse o ficheiro ZIP poderá fazer login na administração e fazer o upload do plugin através da página de plugins, clicando em adicionar novo plugin.
Se por alguma razão não funcionar, poderá apenas fazer o upload dos ficheiros conteúdos no ZIP para o diretório wp-content/plugins/ do seu WordPress.
Nota: este plugin apenas simplifica a área de administração do WordPress para contas abaixo do administrador. Desta forma, se você estiver logado como amdinistrador você não verá nenhuma diferença. Terá que criar uma conta de editor. Veremos mais abaixo como alterar este comportamento.
TEMA SIMPLES PARA WEBSITES ESTÁTICOS
Para além do plugin, a PixoPoint lançou um tema simples para que você possa começar a programar seu novo website simples a partir dele.
ENTENDENDO O CÓDIGO DO PLUGIN
Se você abrir o ficheiro ZIP ryans-simple-cms.zip descarregado anteriormente, você verá 3 ficheiros, sendo que um é o plugin propriamente dito, pois é o único ficheiro PHP. Abra-o num editor de ficheiro simples. Se tiver em ambiente Windows recomendo usar o Notepad++.
Para a funcionalidade que ele exerce é bem pequenino, você não acha? A explicação para isso é que este plugin usa o mesmo conceito de hooks que vimos em cima. Passando toda parte informativa e de comentários do plugin, iremos dar uma olhada no método __construct() do plugin:
public function __construct() {
// Add action hooks
add_action( 'admin_menu', array( $this, 'remove_menus' ) );
add_action( 'wp_before_admin_bar_render', array( $this, 'remove_admin_bar_links' ) );
add_action( 'admin_menu', array( $this, 'remove_meta_boxes' ) );
add_action( 'wp_head', array( $this, 'simplecms_comments' ) );
}
Este método adiciona as acções necessárias para despoletar as funções que vão simplificar o painel da administração. A hook admin_menu é usada para remover menus e também as meta boxes do painel de administração do WordPress, da mesma maneira que fizémos no artigo anterior. A hook wp_before_admin_bar_render serve para remover ou adicionar links na barra de administração. Neste caso vamos tirar vários links que não queremos que estejam presentes.
function remove_admin_bar_links() {
// Bail out now if not in admin or user can't activate plugins
if ( current_user_can( 'manage_options' ) || ! is_admin() )
return;
global $wp_admin_bar;
$wp_admin_bar->remove_menu( 'comments' );
$wp_admin_bar->remove_menu( 'new-content' );
$wp_admin_bar->remove_menu( 'blog-6-n' );
$wp_admin_bar->remove_menu( 'blog-6-c' );
}
Esta função remove, cada um dos itens que não queremos que esteja presente na barra de adminsitração. Neste caso, remove as ligações para novo conteúdo e comentários usando o método remove_menu que aceita uma string como parâmetro. Essa string é o ID renderizado do objecto que queremos remover.
function remove_menus () {
// Bail out now if not in admin or user can't activate plugins
if ( current_user_can( 'manage_options' ) || ! is_admin() )
return;
// List of items to remove
$restricted_sub_level = array(
'edit-tags.php?taxonomy=category' =>'edit.php', // This doesn't actually do anything since posts aren't present, but left here so that you can see how to remove sub menus if needed in your own projects
'edit.php' => 'TOP',
'edit-comments.php' => 'TOP',
'tools.php' => 'TOP',
'link-manager.php' => 'TOP',
);
foreach( $restricted_sub_level as $page => $top ) {
// If a top leve page, then remove whole block
if ( 'TOP' == $top )
remove_menu_page( $page );
else
remove_submenu_page( $top, $page );
}
// Redirect from dashboard to edit pages - Thanks to WP Engineer for this code snippet ... http://wpengineer.com/redirects-to-another-page-in-wordpress-backend/
if ( preg_match( '#wp-admin/?(index.php)?$#', esc_url( $_SERVER['REQUEST_URI'] ) ) )
wp_redirect( admin_url( 'edit.php?post_type=page' ) );
}
Este método da classe remove os menus da mesma maneira que nós removemos em cima, passando a slug da página do painel que queremos remover nas funções remove_menu_page e remove_submenu_page. Esta técnica aqui usada é bastante intuitiva. Você cria um array com todas as slugs das páginas que quer remover do painel, e depois aplica um loop foreach que vai passando cada um dos elementos do array um a um e removendo-o através da função.
É nesta função que você poderá tirar a condição do administrador não poder ver as simplificações. Retire apenas o código seguinte:
// Bail out now if not in admin or user can't activate plugins if ( current_user_can( 'manage_options' ) || ! is_admin() ) return;
Analisando o final do método, vemos que existe uma hack ao link da administração. Basicamente o que ele faz é, caso haja uma chamada à administração do WordPress, ele redireciona da dashboard para a listagem de páginas. Desta maneira torna o processo de criação de páginas mais intuitivo.
Até breve!














Gostou desse artigo?
Partilhar Comentar
estou tendo exatamente esse problema hoje, mas no meu caso eu queria apenas liberar a area widget para autores/editores, poderia me ajudar?
grato.
Um abraço ;)
Abraços
Vejo varios site lindos em wp e tal e estou para fazer um site
Será basicamente isso
Home
Produtos
Contato
Projetos
Quem Somos
Sendo que em produtos, vc clica e aparece as imagens da logo e tal e vc clica na logo e aparece os produtos deste fabricante e descricao
Estive vendo umas lojas no wp e tal.
Uma coisa que acho estranhos no admin é o seguinte
Nao tem como ter, sei la tipo em produtos
- categorias - vc cadastra as categorias
- subcategorias - vc cadastra as subs
- produtos - vc cadastra fotos e descricao dos mesmos, sendo que em um sistema mais facil, pois acho meio dificil o cliente que geralmente nao sabe nada cadastrar as fotos.
Nao sei se vc me entendeu.
Gostaria de saber sobre o admin, se tem algo que possa ser feito para personalizar .....entendeu
Contratei um site desenvolvido pela empresa XXXX e a plataforma que eles usam é worpress ate ai tudo bem. so que na area de adm do wordpress eles me limitaram esconderam os plugins para instalar novos - esconderam instalar novos temas e esconderam ferramentas e esconderam configurações.
Existe alguma maneira de voltar esses pelo cpanel sei la ... me ajudem
me mande o link do site
Para você partcipar dessa lista tem de estar cadastrado no Twitter. Cadastre-se agora!