Costruire un Post Widget recente Realizzato da SimplePie

In questo tutorial, presenterò SimplePie, costruisco un plugin per widget che mostra gli articoli pubblicati di recente interrogati dal feed di WordPress usando SimplePie, e discuto il vantaggio prestazionale di interrogare i post dal feed di WordPress al posto del database.

Introduzione a SimplePie

SimplePie è un parser di feed gratuito, molto veloce e facile da usare, scritto in PHP che gestisce tutto il lavoro sporco quando si tratta di recupero, memorizzazione nella cache, analisi, normalizzazione delle strutture di dati tra formati, gestione della codifica dei caratteri e disinfezione del dati risultanti.

Guida introduttiva a SimplePie

Per installare e iniziare a utilizzare SimplePie, controlla i seguenti passaggi:

  1. Scarica la libreria SimplePie e crea due cartelle: php e nascondiglio.
  2. Caricare biblioteca/ e autoloader.php al php cartella che hai appena creato.
  3. SimplePie è ora installato e pronto per essere utilizzato.

Vediamo come utilizzare SimplePie per recuperare il contenuto trovato in un feed.

set_feed_url ('http://feeds.fedburner.com/tech4sky'); // Esegui SimplePie. $ Feed-> init (); // Invia contenuto al browser come text / html e il set di caratteri UTF-8. $ Feed-> handle_content_type (); ?>   Esempio di pagina SimplePie   

get_permalink (); ?> ">get_title (); ?>

get_description (); ?>

get_items () come $ item):?>

get_permalink (); ?> ">get_title (); ?>

get_description (); ?>

postato su get_date ('j F Y | g: i a'); ?>

SimplePie è facile da installare e utilizzare, no??

Nella prossima sezione, costruiremo un widget che mostra di recente gli articoli recuperati dal feed di WordPress.

Vantaggio delle prestazioni di interrogazione di post dal database di feed over

Molti di noi usano un widget da visualizzare messaggi recenti nella barra laterale del nostro blog WordPress. Molti di questi plugin interrogano il database per recuperare gli articoli pubblicati di recente.

Considerando il fatto che un'applicazione web basata su database come WordPress richiede tempo per interrogare e scrivere nel database, è giusto dire che minore è il numero di query sul database, maggiore è il miglioramento che possiamo vedere sul tempo di caricamento della nostra pagina.

Piuttosto che interrogare il database, potremmo recuperare gli articoli pubblicati di recente dal nostro feed WordPress usando SimplePie che può migliorare significativamente le prestazioni.

SimplePie ha diverse opzioni per la memorizzazione nella cache dei dati di alimentazione incorporati in modo da non dover tirare l'intero feed ogni volta.

Uno di questi è il basato su file- sistema di memorizzazione nella cache che memorizza l'elemento del feed della cache in una directory scrivibile dal server che ottimizza ulteriormente le prestazioni.

Costruire un widget post recente con SimplePie

Costruire un widget in WordPress è facile e diretto.

In primo luogo, estendere il WP_Widget classe, includere questi quattro metodi: __costruire(), Widget (), modulo(), aggiornare() nella classe e infine registra il widget.

  1. Crea una classe estendendo il WP_Widget
    classe Tutsplus_simplepie estende WP_Widget 
  2. Dare al widget un nome e una descrizione tramite il __costruire() metodo magico
    function __construct () parent :: __ construct ('tutsplus_widget', // Base ID __ ('Post recenti powered by SimplePie', 'text_domain'), // Name array ('description' => __ ('Post più recenti generati dal feed WordPress usando SimplePie ',' text_domain '),)); 
  3. Il Widget () metodo visualizza il front-end del widget.
    widget di funzioni pubbliche ($ args, $ istanza) $ feedURL = vuoto ($ istanza ['feedURL'])? indirizzo del sito() . '/ feed': $ istanza ['feedURL']; $ feedNumber = vuoto ($ istanza ['feedNumber'])? 5: $ instance ['feedNumber']; $ showDate = vuoto ($ istanza ['showDate'])? 0: 1; $ showDescription = vuoto ($ istanza ['showDescription'])? 0: 1; echo $ args ['before_widget']; $ title = apply_filters ('widget_title', $ instance ['title']); if (! empty ($ title)) echo $ args ['before_title']. $ titolo. $ args [ 'after_title'];
  4. require_once 'php / autoloader.php'; // Crea un'istanza ed elabora questo feed con tutte le opzioni predefinite. $ feed = new SimplePie (); // Imposta quale feed elaborare. $ feed-> set_feed_url ($ feedURL); // Imposta dove archiviare i file della cache $ feed-> set_cache_location (plugin_dir_path (__FILE__). 'Cache'); // Esegui SimplePie. $ Feed-> init (); // assicurati che il contenuto sia inviato al browser come text / html e il set di caratteri UTF-8 $ feed-> handle_content_type (); // Calcola quanti oggetti totali ci sono, ma limita a 5. $ maxitems = $ feed-> get_item_quantity ($ feedNumber); // Costruisce una matrice di tutti gli elementi, iniziando dall'elemento 0 (primo elemento). $ rss_items = $ feed-> get_items (0, $ maxitems); ?> 
    • get_permalink ()); ?> "title =" get_title ()); ?> "> get_title ()); ?> ". $ item -> get_date ('F j Y')."";?> ". $ item -> get_description ()."
";?>
  • Creare il modulo delle impostazioni del widget con modulo() metodo
    modulo di funzione pubblica ($ istanza) $ defaults = array ('title' => 'Messaggi recenti', 'feedURL' => get_site_url (). '/ feed', 'feedNumber' => 5); $ istanza = wp_parse_args ((array) $ istanza, $ defaults); $ title = $ istanza ['titolo']; $ feedURL = $ istanza ['feedURL']; $ feedNumber = $ istanza ['feedNumber']; $ showDate = $ istanza ['showDate']; $ showDescription = $ istanza ['showDescription']; ?> 

    ">

    ">

  • Finalmente il aggiornare() il metodo disinfetta e salva le impostazioni del widget nel database.
    aggiornamento della funzione pubblica ($ new_instance, $ old_instance) $ instance = array (); $ instance ['title'] = (! empty ($ new_instance ['title']))? strip_tags ($ new_instance ['title']): "; $ instance ['feedURL'] = (! empty ($ new_instance ['feedURL']))? strip_tags ($ new_instance ['feedURL']):"; $ instance ['feedNumber'] = (! empty ($ new_instance ['feedNumber']))? strip_tags ($ new_instance ['feedNumber']): "; $ instance ['showDate'] = (! empty ($ new_instance ['showDate']))? strip_tags ($ new_instance ['showDate']):"; $ instance ['showDescription'] = (! empty ($ new_instance ['showDescription']))? strip_tags ($ new_instance ['showDescription']): "; restituisce $ istanza;
  • La funzione di avanzamento del recupero di WordPress recupera anche il feed e lo analizza utilizzando SimplePie. Se si desidera utilizzare il prendi il feed funzione invece di implementare SimplePie da zero, cambia il file Widget () metodo all'interno del Tutsplus_simplepie Classe di widget per il codice seguente.

    widget di funzioni pubbliche ($ args, $ istanza) $ feedURL = vuoto ($ istanza ['feedURL'])? site_url (). '/ feed': $ instance ['feedURL']; $ feedNumber = (int) vuoto ($ istanza ['feedNumber'])? 5: $ instance ['feedNumber']; $ showDate = vuoto ($ istanza ['showDate'])? 0: 1; $ showDescription = vuoto ($ istanza ['showDescription'])? 0: 1; echo $ args ['before_widget']; $ title = apply_filters ('widget_title', $ instance ['title']); if (! empty ($ title)) echo $ args ['before_title']. $ titolo. $ args [ 'after_title']; include_once (ABSPATH. WPINC. '/feed.php'); // Ottieni un oggetto feed SimplePie dall'origine del feed specificato. $ rss = fetch_feed ($ feedURL); if (! is_wp_error ($ rss)): // Controlla che l'oggetto sia creato correttamente // Calcola quanti oggetti totali ci sono, ma limita a 5. $ maxitems = $ rss-> get_item_quantity ($ feedNumber); // Costruisce una matrice di tutti gli elementi, iniziando dall'elemento 0 (primo elemento). $ rss_items = $ rss-> get_items (0, $ maxitems); finisci se; ?> 
    • get_permalink ()); ?> "title ="get_title ()); ?> "> get_title ()); ?> ". $ item-> get_date ('F j Y')."";?> ". $ item-> get_description ()."
    ";?>

    Nota sul widget

    L'aspetto del widget varia da tema a tema in base al foglio di stile. Alcuni di noi ospitano il nostro feed su FeedBurner, quindi ho aggiunto un campo di opzione URI del feed nel modulo delle impostazioni del widget, nel caso in cui desideri modificarlo con il feed predefinito impostato su http://yoursite.com/feed.

    Altre opzioni del widget includono la modifica del numero "Post recenti" per visualizzare, mostrare / nascondere il riepilogo del post e la data di ogni post.

    Conclusione

    Abbiamo finito di costruire il widget post recente. Per capire meglio come è stato costruito il widget e come implementarlo sul tuo sito WordPress, scarica il file tutorial.

    Quando viene estratto, il file contiene due file plugin in cerniera lampo:

    1. Il primo è il widget creato utilizzando SimplePie.
    2. L'altro costruito utilizzando la funzione di avanzamento del caricamento di WordPress che, per coincidenza, utilizza anche la libreria SimplePie.

    Speriamo che questo aiuti a lavorare con la costruzione di widget e SimplePie in futuro. 

    Fammi sapere i tuoi pensieri nei commenti!