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.
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.
Per installare e iniziare a utilizzare SimplePie, controlla i seguenti passaggi:
php
e nascondiglio
.biblioteca/
e autoloader.php
al php
cartella che hai appena creato.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_items () come $ item):?>get_permalink (); ?> ">get_title (); ?>
get_description (); ?>
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.
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 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.
WP_Widget
classe Tutsplus_simplepie estende WP_Widget
__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 '),));
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'];
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); ?>
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']; ?>
">
">
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; ?>
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.
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:
Speriamo che questo aiuti a lavorare con la costruzione di widget e SimplePie in futuro.
Fammi sapere i tuoi pensieri nei commenti!