Dans ce tutoriel, je présenterai SimplePie, construirai un plugin de widget affichant les articles récemment publiés interrogés à partir du flux WordPress utilisant SimplePie, et exposerai les avantages, en termes de performances, de l'interrogation de publications à partir du flux WordPress au lieu de la base de données..
SimplePie est un analyseur de flux gratuit, très rapide et facile à utiliser, écrit en PHP qui gère tout le travail salissant en matière de récupération, de mise en cache, d’analyse, de normalisation des structures de données entre les formats, de gestion de la traduction du codage de caractères et de nettoyage. données résultantes.
Pour installer et commencer à utiliser SimplePie, procédez comme suit:
php
et cache
.bibliothèque/
et autoloader.php
au php
dossier que vous venez de créer.Voyons comment utiliser SimplePie pour récupérer le contenu d'un flux..
set_feed_url ('http://feeds.fedburner.com/tech4sky'); // Exécuter SimplePie. $ feed-> init (); // Envoie le contenu au navigateur sous forme de texte / html et le jeu de caractères UTF-8. $ feed-> handle_content_type (); ?>Exemple de page SimplePie get_items () en tant que $ item):?>get_permalink (); ?> ">get_title (); ?>
get_description (); ?>
get_permalink (); ?> ">get_title (); ?>
get_description (); ?>
Posté sur get_date ('j F Y | g: i a'); ?>
SimplePie est facile à installer et à utiliser, n'est-ce pas??
Dans la section suivante, nous allons construire un widget qui affiche les articles récemment publiés extraits du flux WordPress..
Beaucoup d’entre nous utilisent un widget pour afficher Messages récents dans l'encadré de notre blog WordPress. Beaucoup de ces plugins interrogent la base de données pour récupérer les articles récemment publiés.
Compte tenu du fait qu'une application Web basée sur une base de données telle que WordPress prend du temps à interroger et à écrire dans la base de données, il est juste de dire que moins il y a de requêtes dans la base de données, plus l'amélioration de notre temps de chargement des pages est importante..
Plutôt que d'interroger la base de données, nous pourrions récupérer les articles récemment publiés à partir de notre flux WordPress à l'aide de SimplePie, ce qui peut considérablement améliorer les performances..
SimplePie a plusieurs options pour la mise en cache des données de flux intégrées afin que vous n'ayez pas à extraire le flux entier à chaque fois.
Un de ceux-ci est le basé sur des fichiers
système de mise en cache qui stocke l'élément de flux de cache dans un répertoire inscriptible sur le serveur, ce qui optimise encore les performances.
Construire un widget dans WordPress est simple et rapide.
Tout d'abord, étendre le WP_Widget
classe, incluez ces quatre méthodes: __construction()
, widget ()
, forme()
, mettre à jour()
dans la classe et enfin enregistrer le widget.
WP_Widget
La classe Tutsplus_simplepie étend WP_Widget
__construction()
méthode magique function __construct () parent :: __ construct ('tutsplus_widget', // ID de base __ ('Message récent alimenté par SimplePie', 'text_domain'), // Tableau de noms ('description' => __ ('Messages les plus récents générés à partir de WordPress en utilisant SimplePie ',' text_domain '),));
widget ()
méthode affiche le front-end du widget. widget de fonction publique ($ args, $ instance) $ feedURL = empty ($ instance ['feedURL'])? URL du site() . '/ feed': $ instance ['feedURL']; $ feedNumber = empty ($ instance ['feedNumber'])? 5: $ instance ['feedNumber']; $ showDate = empty ($ instance ['showDate'])? 0: 1; $ showDescription = empty ($ instance ['showDescription'])? 0: 1; echo $ args ['before_widget']; $ title = apply_filters ('widget_title', $ instance ['title']); if (! empty ($ title)) echo $ args ['before_title']. $ titre. $ args ['after_title'];
require_once 'php / autoloader.php'; // Instancie et traite ce flux avec toutes les options par défaut. $ feed = new SimplePie (); // Définit le flux à traiter. $ feed-> set_feed_url ($ feedURL); // Définit où les fichiers de cache doivent être stockés $ feed-> set_cache_location (plugin_dir_path (__FILE__). 'Cache'); // Exécuter SimplePie. $ feed-> init (); // vérifie que le contenu est envoyé au navigateur sous forme de texte / html et que le jeu de caractères UTF-8 $ feed-> handle_content_type (); // Calculez le nombre total d'éléments, mais limitez-le à 5. $ maxitems = $ feed-> get_item_quantity ($ feedNumber); // Construit un tableau de tous les éléments, en commençant par l'élément 0 (premier élément). $ rss_items = $ feed-> get_items (0, $ maxitems); ?>
forme()
méthode formulaire de fonction publique ($ instance) $ defaults = array ('title' => 'Posts récents', 'feedURL' => get_site_url (). '/ feed', 'feedNumber' => 5); $ instance = wp_parse_args ((tableau) $ instance, $ par défaut); $ title = $ instance ['title']; $ feedURL = $ instance ['feedURL']; $ feedNumber = $ instance ['feedNumber']; $ showDate = $ instance ['showDate']; $ showDescription = $ instance ['showDescription']; ?>
">
">
mettre à jour()
méthode désinfecte et enregistre les paramètres du widget dans la base de données. mise à jour de la fonction publique ($ 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']): "; return $ instance;
La fonction de flux de récupération WordPress récupère également le flux et l’analyse à l’aide de SimplePie. Si vous souhaitez utiliser le chercher le fil
au lieu d’appliquer SimplePie à partir de la base, modifiez le widget ()
méthode à l'intérieur du Tutsplus_simplepie
Widget class au code ci-dessous.
widget de fonction publique ($ args, $ instance) $ feedURL = empty ($ instance ['feedURL'])? site_url (). '/ feed': $ instance ['feedURL']; $ feedNumber = (int) vide ($ instance ['feedNumber'])? 5: $ instance ['feedNumber']; $ showDate = empty ($ instance ['showDate'])? 0: 1; $ showDescription = empty ($ instance ['showDescription'])? 0: 1; echo $ args ['before_widget']; $ title = apply_filters ('widget_title', $ instance ['title']); if (! empty ($ title)) echo $ args ['before_title']. $ titre. $ args ['after_title']; include_once (ABSPATH. WPINC. '/feed.php'); // Obtient un objet de flux SimplePie à partir de la source de flux spécifiée. $ rss = fetch_feed ($ feedURL); if (! is_wp_error ($ rss)): // Vérifie que l'objet est créé correctement // Détermine le nombre total d'éléments, mais le limite à 5. $ maxitems = $ rss-> get_item_quantity ($ feedNumber); // Construit un tableau de tous les éléments, en commençant par l'élément 0 (premier élément). $ rss_items = $ rss-> get_items (0, $ maxitems); fin si; ?>
L'apparence du widget varie d'un thème à l'autre en fonction de votre feuille de style. Certains d'entre nous hébergeant notre flux sur FeedBurner, j'ai donc ajouté un champ d'option d'URI de flux dans le formulaire de paramètres du widget si vous souhaitez le modifier avec le flux par défaut défini sur http://votresite.com/feed
.
Les autres options du widget incluent la modification du numéro "Publication récente" pour afficher, afficher / masquer le résumé de publication et la date pour chaque publication..
Nous avons terminé la création du widget de publication récente. Pour mieux comprendre la construction du widget et son implémentation sur votre site WordPress, téléchargez le fichier de tutoriel..
Une fois extrait, le fichier contient deux fichiers de plug-in dans Zip *: français:
Espérons que cela vous aidera à créer des widgets et SimplePie à l'avenir..
Faites-moi savoir vos pensées dans les commentaires!