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

Como adicionar um feed RSS personalizado no painel do WordPress

Você está em:

Como adicionar um feed RSS personalizado no painel do WordPress

Adicionar um feed RSS personalizado no painel do WordPress

A Internet está cheia de ótimos recursos e é difícil dar uma olhada em tudo. Claro que existe o Twitter para ficar de olho nas tendências, ou softwares leitores de RSS, mas você é como eu muito ocupado, às vezes é chato ter 20 softwares abertos ao mesmo tempo. É por isso que decidi usar meu painel do WordPress como uma plataforma global para ter acesso rápido a esses feeds. Um exemplo que quero compartilhar hoje é como criar uma metabox RSS personalizada no painel do WordPress.

Aqui está o resultado final do que vamos criar:

add-a-custom-rss-dashboard-metabox

Etapa 1: o plug-in

Para adicionar esta metabox precisamos criar um plugin. Então, simplesmente crie uma nova pasta chamada “my-dashboard-metaboxes” em wp-content/plugins/ e dentro da nova pasta crie um arquivo chamado my-dashboard-metaboxes.php. Este arquivo será o arquivo de plugin principal. Abra-o em seu editor principal. O código abaixo é o código que irá gerar o plugin. Nada realmente complexo aqui:

<?php

/*

Plugin Name: My Dashboard Metaboxes

Plugin URL: http://remicorson.com/

Description: Adds custom meta boxes on the main admin dashboard

Version: 0.1

Author: Remi Corson

Author URI: http://remicorson.com

Contributors: corsonr

Text Domain: rc_mdm

*/

Passo 2: Registrando a Metabox

Agora que temos um plugin vazio (quero dizer um plugin que não faz nada), precisamos registrar pelo menos uma metabox para ser exibida no painel do WordPress. Para isso, temos que criar uma nova função que vai ligar o gancho “ wp_dashboard_setup ”. Vamos chamar esta função de “rc_mdm_register_widgets()”. Dentro desta função precisamos dizer ao WordPress que queremos adicionar uma nova metabox, e este é o objetivo da função “ wp_add_dashboard_widget() ”. Esta função aceita 4 parâmetros:

1 – $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

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

Padrão: Nenhum

3 – $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

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

O importante aqui é o terceiro parâmetro, é aquele que define as funções que serão carregadas na metabox. Neste exemplo é chamado “rc_mdm_create_my_rss_box()”.

/**

 * 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_freelanceswitch’, __(‘My RSS Feeds’, ‘rc_mdm’), ‘rc_mdm_create_my_rss_box’);

}

add_action(‘wp_dashboard_setup’, ‘rc_mdm_register_widgets’);

Passo 3: O Conteúdo Metabox

Se você ativar o plug-in e acessar o painel do WordPress, deverá ver uma nova metabox vazia. Agora precisamos preencher seu conteúdo. Coisas importantes para esta função é incluir o arquivo “feed.php” embutido no WordPress para poder usar a função “fetch_feed()”. Observe que estamos usando “fetch_feed()” porque “fetch_rss()”, “get_rss()” e “wp_rss()” estão obsoletos. Pela primeira vez, incluí todos os comentários diretamente no código, mas gostaria de chamar sua atenção para alguns recursos interessantes que estou usando dentro da função metabox.

Em primeiro lugar, há a função “ fetch_feed() ”. Este é usado para obter e analisar o conteúdo dos feeds. Esta função está usando a classe SimplePie , então você pode aproveitar quase todas as funções incluídas nela.

Temos então a função “human_time_diff()” que é usada para exibir a hora como “ human_time_diff() ”, por exemplo para exibir algo como “2 horas atrás”, “4 dias atrás” etc… é uma função do WordPress.

E finalmente temos “ wp_html_excerpt() ” para encurtar o conteúdo de cada feed.

Todas as outras funções são funções bem conhecidas do WordPress ou estão incluídas na classe Simple Pie.

Aqui está o código:

/**

 * Creates the RSS metabox

 *

 * @access      public

 * @since       1.0 

 * @return      void

*/

function rc_mdm_create_my_rss_box() {

// Get RSS Feed(s)

include_once(ABSPATH . WPINC . ‘/feed.php’);

// My feeds list (add your own RSS feeds urls)

$my_feeds = array( 

‘http://feeds.feedburner.com/FSAllJobs’, 

‘http://www.wphired.com/feed/?post_type=job_listing’ 

);

// Loop through Feeds

foreach ( $my_feeds as $feed) :

// Get a SimplePie feed object from the specified feed source.

$rss = fetch_feed( $feed );

if (!is_wp_error( $rss ) ) : // Checks that the object is created correctly 

  // Figure out how many total items there are, and choose a limit 

    $maxitems = $rss->get_item_quantity( 3 ); 

  // Build an array of all the items, starting with element 0 (first element).

    $rss_items = $rss->get_items( 0, $maxitems ); 

  // Get RSS title

    $rss_title = ‘<a href=”‘.$rss->get_permalink().'” target=”_blank”>’.strtoupper( $rss->get_title() ).'</a>’; 

endif;

// Display the container

echo ‘<div class=”rss-widget”>’;

echo ‘<strong>’.$rss_title.'</strong>’;

echo ‘<hr style=”border: 0; background-color: #DFDFDF; height: 1px;”>’;

// Starts items listing within <ul> tag

echo ‘<ul>’;

// Check items

if ( $maxitems == 0 ) {

echo ‘<li>’.__( ‘No item’, ‘rc_mdm’).’.</li>’;

} else {

// Loop through each feed item and display each item as a hyperlink.

foreach ( $rss_items as $item ) :

// Uncomment line below to display non human date

//$item_date = $item->get_date( get_option(‘date_format’).’ @ ‘.get_option(‘time_format’) );

// Get human date (comment if you want to use non human date)

$item_date = human_time_diff( $item->get_date(‘U’), current_time(‘timestamp’)).’ ‘.__( ‘ago’, ‘rc_mdm’ );

// Start displaying item content within a <li> tag

echo ‘<li>’;

// create item link

echo ‘<a href=”‘.esc_url( $item->get_permalink() ).'” title=”‘.$item_date.'”>’;

// Get item title

echo esc_html( $item->get_title() );

echo ‘</a>’;

// Display date

echo ‘ <span class=”rss-date”>’.$item_date.'</span><br />’;

// Get item content

$content = $item->get_content();

// Shorten content

$content = wp_html_excerpt($content, 120) . ‘ […]’;

// Display content

echo $content;

// End <li> tag

echo ‘</li>’;

endforeach;

}

// End <ul> tag

echo ‘</ul></div>’;

endforeach; // End foreach feed

}

Na linha 15 há um array onde você pode colocar quantos feeds quiser. Você também pode definir o número de cada item de feed a ser exibido na linha 27. Finalmente, na linha 50 e 54, você pode optar por exibir uma data humana ou uma data normal. Você decide.

Conclusão

Ok, então criamos uma metabox simples, mas agora você tem o básico para criar suas próprias metaboxes com seu próprio conteúdo. Você também pode remover metaboxes padrão do WordPress e, para ter uma compreensão completa da API de widgets do painel , recomendo que você, como sempre, dê uma olhada no codex .

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 =(