fbpx

Bem vindo ao
Blog da FULL.

Aprenda, crie e cresça seu negócio na internet.

Encontre conteúdos, dicas, tutoriais e novidades sobre as principais ferramentas Wordpress

Faça um widget do painel do WordPress configurável

Você está em:

Faça um widget do painel do WordPress configurável

Algumas semanas atrás, vimos como adicionar uma metabox de painel RSS personalizada à administração. Hoje, gostaria de mostrar como adicionar opções configuráveis a esta metabox do painel.

Aqui está o resultado do que vamos fazer:

make_a_widget_configurableA primeira coisa a fazer é obviamente ler a primeira parte deste tutorial para criar a metabox.

A função mais importante neste tutorial é  wp_add_dashboard_widget() . É a função do WordPress que registra um widget de painel. Já vimos que registrar o widget e a função que gera o widget no painel é bem fácil, mas não abordamos o último parâmetro dessa função. Basicamente, wp_add_dashboard_widget() tem 4 parâmetros:

$widget_id

(inteiro) (obrigatório) um slug de identificação para seu widget. Isso será usado como sua classe css e sua chave no array de widgets.

Padrão: Nenhum

$widget_name

(string) (obrigatório) este é o nome que seu widget exibirá em seu cabeçalho.

Padrão: Nenhum

$callback

(string) (obrigatório) O nome de uma função que você cria que exibirá o conteúdo real do seu widget.

Padrão: Nenhum

$control_callback

(string) (opcional) O nome de uma função que você cria que lidará com o envio de formulários de opções de widget (configuração) e também exibirá os elementos do formulário.

Padrão: Nenhum

Como você pode ver, o quarto parâmetro é o responsável pelas opções de “configurar”. Ao preencher este parâmetro você diz ao WordPress para carregar uma função específica para configurar o widget. Ele cria automaticamente um link de “configuração” no título da metabox quando você coloca o cursor sobre ele.

Etapa 1: registrar a função Configurar opções

Assim, o primeiro passo é modificar a  chamada wp_add_dashboard_widget() e adicionar o nome das funções configure options no último parâmetro. Suas  funções rc_mdm_register_widgets() devem se tornar:

/**

 * Register all dashboard metaboxes

 *

 * @access      public

 * @since       1.0 

 * @return      void

*/

function rc_mdm_register_widgets() {

global $wp_meta_boxes;

wp_add_dashboard_widget(‘widget_custom_rss’, __(‘My RSS Feeds’, ‘rc_mdm’), ‘rc_mdm_create_my_rss_box’, ‘rc_mdm_configure_my_rss_box’);

}

add_action(‘wp_dashboard_setup’, ‘rc_mdm_register_widgets’);

Nós simplesmente adicionamos “rc_mdm_configure_my_rss_box” ao último parâmetro.

Etapa 2: criar a função Configurar opções

Este passo não é complicado. Tudo o que temos a fazer é criar campos de formulário armazenados em uma matriz. Para fazer isso, usaremos o  update_option() . Não precisamos criar um formulário completo, pois o WordPress o cria para nós. Só precisamos registrar os campos. Um ponto muito bom a ser mencionado é que o WordPress adiciona automaticamente ao formulário um nonce que torna o formulário seguro e evita possíveis problemas de segurança. Aqui está o código da nossa função rc_mdm_configure_my_rss_box() ( lembra? É o quarto parâmetro que definimos em  wp_add_dashboard_widget()  ).

/**

 * Creates the RSS metabox configuration settings

 *

 * @access      public

 * @since       1.0 

 * @return      void

*/

function rc_mdm_configure_my_rss_box( $widget_id ) {

// Get widget options

if ( !$rc_mdm_widget_options = get_option( ‘rc_mdm_dashboard_widget_options’ ) )

$rc_mdm_widget_options = array();

// Update widget options

if ( ‘POST’ == $_SERVER[‘REQUEST_METHOD’] && isset($_POST[‘rc_mdm_widget_post’]) ) {

update_option( ‘rc_mdm_dashboard_widget_options’, $_POST[‘rc_mdm_widget’] );

}

// Retrieve feed URLs

$url_1 = $rc_mdm_widget_options[‘url_1’];

$url_2 = $rc_mdm_widget_options[‘url_2’];

$url_3 = $rc_mdm_widget_options[‘url_3’]; ?>

<p>

<label for=”rc_mdm_url_1-“><?php _e(‘Enter the RSS feed URL #1:’, ‘rc_mdm’); ?></label>

<input class=”widefat” id=”rc_mdm_url_1″ name=”rc_mdm_widget[url_1]” type=”text” value=”<?php if( isset($url_1) ) echo $url_1; ?>” />

</p>

<p>

<label for=”rc_mdm_url_2″><?php _e(‘Enter the RSS feed URL #2:’, ‘rc_mdm’); ?></label>

<input class=”widefat” id=”rc_mdm_url_2″ name=”rc_mdm_widget[url_2]” type=”text” value=”<?php if( isset($url_2) ) echo $url_2; ?>” />

</p>

<p>

<label for=”rc_mdm_url_3″><?php _e(‘Enter the RSS feed URL #3:’, ‘rc_mdm’); ?></label>

<input class=”widefat” id=”rc_mdm_url_3″ name=”rc_mdm_widget[url_3]” type=”text” value=”<?php if( isset($url_3) ) echo $url_3; ?>” />

</p>

<input name=”rc_mdm_widget_post” type=”hidden” value=”1″ />

<?php

} ?>

Agora você pode recarregar seu painel e, se colocar o cursor na metabox do widget, verá um link “configurar” no canto superior direito. Quando você clica nele, o formulário de opções é carregado. E ao preencher os campos e salvar os feeds os URLs são armazenados em nossa tabela SQL de opções.

Etapa 3: Recuperando opções

A última etapa é substituir os URLs de feed que codificamos na primeira parte do tutorial. Da linha 14 a 18 em rc_mdm_create_my_rss_box() adicionamos duas URLs. Basta substituir por:

// My feeds list

if ( !$my_feeds = get_option( ‘rc_mdm_dashboard_widget_options’ ) )

    $my_feeds = array();

E é isso! Conseguimos adicionar opções personalizadas a um widget de painel facilmente.

Aprenda com a FULL.

Junte-se a mais de 50 mil pessoas que recebem em primeira mão as principais ferramentas e tecnologia para desenvolvimento web

Meu carrinho
🎁 Faltam R$100,00 para liberar a Black da FULL
Seu carrinho está vazio.

Parece que você não adicionou nada ao seu carrinho =(