Suporte » Desenvolvendo com WordPress » Adicionar menu no painel para EDITORES

  • Pessoal criei umas páginas em php e gostaria de adicionar um menu chamado
    Gerenciador e com dois subitens (Logotipos e Alerta) que só apareça para editores ou usuários acima disto. só que eu preciso que ao clicar neles
    o painel carrega a minha página .php que está em outro diretorio abaixo (../web/minha.php) e carrega ela no canto esquerdo?

Visualizando 13 respostas - 1 até 13 (de um total de 13)
  • Criador do tópico mfelis

    (@mfelis)

    me ajuda ai? preciso saber como utilizar corretamente as funções add_menu_page e add_submenu_page? não encontrei nada ?

    O tema twentyeleven que vem com o WP possui um painel, estude ele para ver uma forma de fazer o que vc quer.

    Copie o arquivo e vá alterando para saber o que cada coisa faz, desta forma vc vai descobrindo como fazer e quando tiver uma dúvida mais específica podemos lhe ajudar melhor, pois descrever como se faz um painel completo aqui é meio complicado.

    Criador do tópico mfelis

    (@mfelis)

    Não é um painel inteiro. quero saber como utilizar as funções add_menu_Page e add_submenu_Page. entendeu?

    é só adicionar mais um menu no painel do wp.

    Aqui vc pode ver sobre as funções

    add_menu_page
    http://codex.wordpress.org/Function_Reference/add_menu_page

    add_submenu_page
    http://codex.wordpress.org/Function_Reference/add_submenu_page

    Os parâmetros que vc vai usar depende de que modo vc está fazendo seu painel e nome do arquivo e funções que está usando para criar todo o painel.

    Criador do tópico mfelis

    (@mfelis)

    então já tendei com o wiki. mas não funciona.

    add_menu_page('Gerenciador', 'Logotipos', 'edit_pages', 'page=' . WPMANAGERPATH . 'wpm_bottom_banner.php');

    Porem o link fica ?page=?page=meuendreco

    vc deve fazer assim

    add_theme_page("Gerenciador", "Logotipos", 'edit_themes', basename(__FILE__), 'wpm_admin_page');

    Na ordem que fiz os parâmetros devem ser

    Gerenciador = Título da página (texto simples)
    Logotipos = Texto do link do menu (Texto simples)
    edit_themes = Capacidade do usuário que poderá editar esta página ( edit_themes refere-se ao administrador somente )
    basename(__FILE__) = Gera o nome do arquivo que será usado para gerar o painel
    wpm_admin_page = esta é a função que irá gerar todo o html do painel

    Criador do tópico mfelis

    (@mfelis)

    Entendi. agora sobre submenus. como devo utiliza-los.
    outra pergunta é que se eu deixar essas funções em outro arquivo. em outro diretorio. um include_once bastaria para ele pegar essas funções?

    não costumo usar sub-menus, mas se não me engano é só colocar o nome do arquivo antes do título do menu principal assim

    add_theme_page( “arquivo.php”, “Gerenciador”, “Logotipos”, ‘edit_themes’, basename(__FILE__), ‘wpm_admin_page’);

    obviamente arquivo.php seria o nome que vc deu ao seu arquivos.

    Se estiver errado veja as páginas que listei lá no começo do tópico, pois não tenho certeza se é só isso.

    Criador do tópico mfelis

    (@mfelis)

    ata e sobre os includes. (PERGUNTA ACIMA EU EDITEI)

    Sim, bastaria desde que respeite a ordem de onde o include_once e funções são chamadas.

    primeiro chama os includes e depois as funções, se houver casos que esta ordem não estiver correta dará mensagem de erro.

    Criador do tópico mfelis

    (@mfelis)

    dá uma olhada:

    // Função que Adiciona os Menus
    function wpmanager_addmenus()
    {
    	add_theme_page(__("Gerenciador"), __("Logotipos"), 'edit_themes', basename(__FILE__), 'wpmanager_logos');
    }
    
    // Logotipos //
    function wpmanager_logos()
    {
    	include_once(site_url() . '/web/libs/wpmanager/wpm_bottom_logos.php');
    
    	WPMBLogosWizard();
    }
    
    // Adiciona uma Ação para a Função que coloca o item //
    add_action('admin_menu','wpmanager_addmenus');

    Adiciona o menu certinho porem quando eu clico ele ao invés de disparar a minha função ele chama a função do tema que abre a página do tema?

    eu queria colocar esse script em outro arquivo. e só chamar ele pelo functions do tema: include(site_url(‘/web/libs/wpmanager/wpm.php’));

    não funciona

    Criador do tópico mfelis

    (@mfelis)

    Eu alterei um pouco para isso:

    function custom_clic_settings($page)
    {
        	echo '<iframe allowtransparency="1" frameborder="0" height="768" width="1024" src="' . site_url('/web/libs/clicsettings/$page') . '>
            </iframe>';
    }
    
    function clic_logotipos()
    {
    	custom_clic_settings('logotipos.php');
    }
    
    function clic_menus()
    {
    	add_submenu_page( 'edit.php?post_type=page', 'Clic >> Logotipos', 'Clic >> Logotipos', 'edit_pages', basename(__FILE__), 'clic_logotipos');
    }
    
    add_action( 'admin_menu', 'clic_menus' );

    Mesmo assim não funciona. ele abre a página do menu do tema que (Boldy Options)

    Me baseando no primeiro código, acredito que o erro esteja no arquivo wpm_bottom_logos.php

    e WPMBLogosWizard(); eu não sei o que é, então não sei se está atrapalhando ou não.

    Outra coisa, se vai usar include use TEMPLATEPATH e não site_url(); que em alguns lugares pode não retornar nada.

    na função function wpmanager_addmenus() que vc adiciona o menu não é só isso, esta função ( dependendo do modelo que vc está fazendo ) também gera os códigos para o salvamento das opções e um redirecionamento para a página que se deseja ir após salvar/resetar/deletar opções.

Visualizando 13 respostas - 1 até 13 (de um total de 13)
  • O tópico ‘Adicionar menu no painel para EDITORES’ está fechado para novas respostas.