Construire un widget de publication récente propulsé par SimplePie

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..

Introduction à SimplePie

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.

Débuter avec SimplePie

Pour installer et commencer à utiliser SimplePie, procédez comme suit:

  1. Téléchargez la bibliothèque SimplePie et créez deux dossiers: php et cache.
  2. Télécharger bibliothèque/ et autoloader.php au php dossier que vous venez de créer.
  3. SimplePie est maintenant installé et prêt à être utilisé.

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_permalink (); ?> ">get_title (); ?>

get_description (); ?>

get_items () en tant que $ item):?>

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..

Avantage de performance de la requête post-à partir de flux sur la base de données

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 de publication récente avec SimplePie

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.

  1. Créer une classe prolongeant le WP_Widget
    La classe Tutsplus_simplepie étend WP_Widget 
  2. Attribuez un nom et une description au widget via le __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 '),)); 
  3. le 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'];
  4. 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); ?> 
    • get_permalink ()); ?> "title =" get_title ()); ?> "> get_title ()); ?> ". $ item -> get_date ('F j Y')."";?> ". $ item -> get_description ()."
";?>
  • Créez le formulaire de paramètres de widget avec le 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']; ?> 

    ">

    ">

  • Finalement, le 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; ?> 
    • get_permalink ()); ?> "title ="get_title ()); ?> "> get_title ()); ?> ". $ item-> get_date ('F j Y')."";?> ". $ item-> get_description ()."
    ";?>

    Note sur le widget

    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..

    Conclusion

    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:

    1. Le premier est le widget construit en utilisant SimplePie.
    2. L'autre construit en utilisant WordPress fetch feed fonction qui utilise également la bibliothèque SimplePie.

    Espérons que cela vous aidera à créer des widgets et SimplePie à l'avenir.. 

    Faites-moi savoir vos pensées dans les commentaires!