Comment créer une page d'accueil avec plusieurs listes à l'aide de requêtes personnalisées

WordPress vous propose quelques options intégrées pour la page d'accueil de votre site Web: un affichage de vos articles de blog les plus récents ou une page statique de votre choix. Mais si vous voulez créer quelque chose d'un peu plus intéressant que ça?

Si votre site contient de nombreuses données utilisant des catégories, des taxonomies ou des types de publication personnalisés pour l'organiser, vous souhaiterez peut-être afficher des données de plusieurs types sur votre page d'accueil. La bonne nouvelle est que vous pouvez le faire en utilisant un modèle personnalisé pour la page d'accueil. Dans ce modèle, vous écrivez un certain nombre de requêtes personnalisées pour répertorier les données comme vous le souhaitez. Dans ce tutoriel, vous apprendrez comment:

  • Créez un modèle de page d'accueil personnalisé à utiliser par votre thème
  • Incluez quatre requêtes dans ce modèle pour afficher différents types de données, y compris trois requêtes personnalisées

Les requêtes répertorieront les publications standard plus un type de publication personnalisé enregistré pour ce projet, appelé "animal". Vous pouvez trouver le fichier de modèle avec les quatre requêtes dans la liasse de codes.


Ce dont vous aurez besoin pour compléter ce tutoriel

  • Une installation de développement de WordPress
  • Un thème installé que vous pouvez éditer. Si vous travaillez avec un thème existant, je vous recommande de créer un thème enfant afin de pouvoir créer des fichiers de modèle sans modifier le thème parent. J'utilise un thème d'enfant de Twenty Twelve

La conception de la page d'accueil

Avant de commencer à configurer le modèle de page d’accueil, prenez un peu de temps pour identifier le contenu de la page d’accueil:

La page d'accueil contient:

  • Un en-tête avec une bannière et un menu de navigation
  • Le contenu de la page d'accueil - texte et une image
  • Trois listes, chacune utilisant une requête personnalisée:
    • Mises à jour - ce sont des publications standard dans la catégorie "Mises à jour".
    • En détail - postes standard dans la catégorie 'Détail'
    • Animaux - ceux-ci utilisent un type de message personnalisé appelé "animal"
  • Un pied de page standard

Les éléments de cette mise en page avec lesquels vous allez travailler sont le contenu de la page d’accueil et les trois listes..


Avant de commencer: Configuration des données

Avant de commencer, vous devez disposer de quelques éléments pour que vos requêtes fonctionnent:

  • Un type de message personnalisé 'animal' enregistré. Pour plus de détails sur la procédure à suivre, voir register_post_type dans le codex WordPress. Alternativement, le functions.php le fichier dans le paquet de code inclut le code qui le fait
  • Deux catégories configurées pour les messages normaux - "Mises à jour" et "En détail"
  • Une page statique mise en place appelée 'Home', avec du contenu ajouté. Cela devrait être configuré comme page d'accueil via la page Paramètres dans le tableau de bord WordPress
  • Quelques publications normales dans chaque catégorie et quelques animaux (en utilisant le type de publication personnalisé). Le modèle affichera jusqu'à huit de chaque

Création du modèle de page de garde

La première étape consiste à créer un fichier modèle pour contenir votre code. Créez un fichier vide dans votre dossier de thèmes et nommez-le. front-page.php. Ajoutez le code suivant au fichier:

  // le contenu de la page d'accueil va ici 

Enregistrez votre fichier. Comme vous pouvez le constater, cela inclut les fichiers de modèle d'en-tête et de pied de page sur votre page d'accueil. Aucune barre latérale n'est incluse car cela ne fait pas partie de la conception de la page d'accueil. Lorsque vous visitez la page d'accueil de votre site, une page vierge contenant uniquement l'en-tête et le pied de page s'affiche:


Ajout de contenu statique à la page d'accueil

En plus d'afficher les résultats des requêtes personnalisées, votre page d'accueil affichera le contenu de la page statique 'Home'. Pour ajouter ceci à votre fichier de modèle, insérez le code suivant pour remplacer le '// le contenu de la page d'accueil va ici' ligne:

  
>
?>

C'est la boucle standard. WordPress l'utilisera pour afficher le contenu de la page statique que vous avez enregistrée en tant que page d'accueil. Votre page d'accueil contiendra maintenant le contenu statique:


La première requête personnalisée avec WP_Query

Pour les requêtes personnalisées, vous utiliserez le WP_Query classe. Cela vous permet de configurer des requêtes personnalisées et d'exécuter une boucle basée sur chacune d'elles pour afficher les publications..

En utilisant WP_Query est bien meilleure pratique que d'utiliser le query_posts fonctionner comme ce dernier réinitialise complètement la requête principale et peut causer des problèmes de performances. WP_Query prend un ensemble de paramètres qui définissent la requête que vous voulez exécuter. Quelques exemples de paramètres que vous pouvez spécifier incluent (sans toutefois s'y limiter):

  • Type de poste - posts, pages, pièces jointes ou un type de post personnalisé
  • Catégorie
  • étiquette
  • taxonomie terme (s)
  • posts_per_page - le nombre de messages à afficher
  • ordre - ASC ou DESC
  • commandé par - vous pouvez commander par date, nom, auteur, menu_order ou de nombreux autres paramètres
  • … et beaucoup plus

Pour plus de détails sur les paramètres que vous pouvez utiliser avec WP_Query, voir WP_Query dans le codex WordPress. Utiliser WP_Query, vous insérez le code suivant:

 have_posts ()): $ query-> the_post (); // publie le contenu à afficher ici endwhile; ?>

Sur votre page d'accueil, vous souhaitez répertorier les huit derniers articles de la catégorie "Mises à jour". Pour ce faire, ajoutez le code suivant entre la requête principale et l'appel au pied de page:

 

/ category / updates / "> Mises à jour

    'post', 'category_name' => 'Mises à jour', 'posts_per_page' => 8)); while ($ query-> have_posts ()): $ query-> the_post (); ?>
  • "> -

Cela crée un

élément pour contenir votre liste et ouvre la liste avec un lien vers la catégorie archive dans un

étiquette. Il définit ensuite les arguments pour WP_Query et exécute la boucle en fonction de cette requête. Les classes supplémentaires peuvent être utilisées pour styliser chaque liste individuelle.


La deuxième requête personnalisée

La deuxième requête personnalisée est presque identique à la première, il ne s'agit que de requêtes de publications d'une autre catégorie. Ajouter ce qui suit après la première requête et immédiatement avant la seconde fermeture

étiquette:

 

/ catégorie / en profondeur / "> en profondeur

    'post', 'category_name' => 'En profondeur', 'posts_per_page' => 8)); while ($ query-> have_posts ()): $ query-> the_post (); ?>
  • "> -

Cela ajoute une deuxième liste de publication pour les publications de la catégorie "En détail"..


La troisième requête personnalisée: interroger un type de publication personnalisé

La troisième et dernière requête n'interroge pas les publications standard, mais le type de publication personnalisé 'animal' que vous avez enregistré avant de créer votre fichier de modèle. Après la deuxième requête personnalisée, ajoutez ce qui suit:

 

"> Nos animaux préférés

    'animal', 'posts_per_page' => 8)); while ($ query-> have_posts ()): $ query-> the_post (); ?>
  • ">

Vous avez maintenant toutes les requêtes en place et affichées sur la page d'accueil:


Styliser les inscriptions

La dernière étape consiste à ajouter un peu de style. Pour le moment, les annonces sont l'une en dessous de l'autre, avec très peu d'espacement ou de décoration.

Dans cette étape, vous allez ajouter un style simple pour améliorer ceci. Dans la feuille de style de votre thème, ajoutez ce qui suit:

 .clear float: none; clarifier les deux;  .home section.archive width: 31%; marge: 10px 1%; border-top: 1px solid # 222; float: gauche;  .home section.archive ul li line-height: 1.4em; 

Cela garantira que les listes sont effacées sous le contenu principal et les placera côte à côte. Il ajoute également un espacement entre les éléments de chaque liste:


Résumé

Vous avez maintenant une page d’accueil personnalisée qui comprend le contenu de la page statique ainsi que trois requêtes personnalisées répertoriant différents types de contenu. Vous pouvez adapter cette approche à différentes exigences. Par exemple:

  • Pour une page d'accueil qui ne contient que des archives et aucun contenu statique, supprimez simplement la première boucle.
  • Pour lister le type de message 'animaux' d'une manière différente, vous pouvez spécifier des taxonomies dans vos arguments pour WP_Query
  • Vous pouvez ajouter ou modifier le contenu affiché pour chaque message, par exemple en utilisant the_thumbnail () afficher des miniatures de messages (ou des images en vedette)
  • Vous pouvez ajouter des requêtes personnalisées à votre modèle de barre latérale ou de pied de page pour les afficher sur toutes les pages.

Ressources

Quelques ressources utiles:

  • Page du Codex sur le WP_Query classe: http://codex.wordpress.org/Class_Reference/WP_Query
  • Création d'un fichier modèle pour la page d'accueil: http://codex.wordpress.org/Template_Hierarchy#Front_Page_display
  • Enregistrement de types d'articles personnalisés: http://codex.wordpress.org/Function_Reference/register_post_type