Créer le modèle de page de blog personnalisé de la bonne façon


8

Je souhaite créer un nouveau modèle de page personnalisé pour la présentation des articles de blog. Je me rends compte que lorsque vous attribuez une page pour afficher des messages via Paramètres> Lecture , il attribuera ensuite home.php pour afficher le contenu de cette page - étant des messages sur une page. L'option d'attribution d'un modèle de page dans la vue d'édition de page disparaît également.

À l'heure actuelle, il affiche une vue par défaut article par article. Je veux fournir une autre option à l'administrateur pour sélectionner un modèle différent qui pourrait styliser les blogs dans une mise en page en treillis ou en maçonnerie. Je ne sais pas comment faire ça.

Je pourrais le faire en n'attribuant pas la page pour afficher les blogs dans la zone Paramètres> Lecture de l' administrateur et en permettant ensuite à l'utilisateur administrateur d'affecter le modèle spécifique à la page en utilisant le menu Attributs de page dans l'édition de page, mais selon https://make.wordpress.org / themes / 2014/06/28 / gestion-correcte-de-la-page-statique-et-du-blog-posts-index-template personnalisé / , c'est la FAUTE façon .

J'ai essayé de rechercher des solutions sur Google, mais tout ce que je continue de trouver, ce sont des recommandations de plugins à utiliser. Quelqu'un pourrait-il m'indiquer des ressources utiles?


Je suppose que le problème d'origine est résolu depuis longtemps, mais je voulais juste dire que la lecture du code source des plugins m'a beaucoup appris. Si vous pouvez trouver un plugin dans le répertoire WP.org, vous pouvez cliquer sur l'onglet développeurs pour afficher le code directement à partir du navigateur et voir comment le faire.
rtpHarry

Réponses:


8

N'oubliez pas que Wordpress a été principalement conçu pour être un CMS de blog, donc quand il s'agit de développement de thème, les développeurs optent souvent pour une approche non standard en échange du potentiel de plus de fonctionnalités.

Les développeurs de thèmes ont trois options lorsqu'ils s'en approchent, dont l'une (# 2 ci-dessous) que vous avez mentionnée.

  1. index.phpModifiez directement le pour modifier l'index du blog. Ce n'est pas une bonne option car cela index.phpdevrait être la solution de rechange au cas où une autre partie de votre modèle serait manquante.

    • Avantages: rapide et facile
    • Inconvénients: sujets aux erreurs et contre les principes orientés objet
  2. Créez un modèle de page pour l'index du blog. Comme vous l'avez dit, de nombreux développeurs de thèmes choisissent de suivre cette voie, car c'est un moyen rapide de vous donner le contrôle de l'index de blog, et il vous donne en fait la possibilité de jouer avec différents modèles d'index de blog (ce qui est utile lors du développement d'un thème polyvalent). ).

    • Avantages: polyvalent, permet de créer un thème robuste
    • Inconvénients: vous perdez la possibilité d'appeler la fonctionnalité native de Wordpress qui se rapporte à l'index du blog.
  3. Créez un front-page.php, home.phpet index.phpdans votre thème. Ce front-pagesera la page d'accueil du thème. homesera par défaut l'index de votre blog et indexsera votre solution de rechange pour tous les modèles.

    • Avantages: Nettoyer et utiliser pleinement les objets et méthodes natifs de Wordpress
    • Inconvénients: limité par Wordpress: pas idéal pour la plupart des types de thèmes riches en options que vous voyez aujourd'hui

Personnellement, j'aime aller avec # 2, car la plupart de mes projets de développement Wordpress de nos jours ne sont pas seulement des blogs: ce sont des sites entiers avec une architecture d'informations approfondie et une interactivité complexe.



0

Je vais couvrir plusieurs bases dans ma réponse. :)

Si vous créez votre propre thème et que vous souhaitez modifier la présentation par défaut de certains types de pages (par exemple, la page d'archive de catégorie ou une seule page de blog), consultez le diagramme de la hiérarchie des modèles WordPress . Il montre quels fichiers de votre répertoire de thèmes sont utilisés pour afficher les types de publication.

En ayant un fichier php dans votre thème qui correspond à un fichier dans cette hiérarchie, il sera automatiquement utilisé par WordPress, par exemple single.phppour afficher une seule publication. Si vous avez déjà un thème avec ce fichier, vous pouvez évidemment changer le fichier et il sera reflété sur le site.

Séparément, si vous souhaitez avoir des modèles de page personnalisés mais souhaitez uniquement qu'un administrateur puisse les modifier (poste par poste), vous devez alors vérifier les rôles et les capacités; cette réponse StackExchange peut être utile. (Vous devez toujours créer ces modèles de page personnalisés, consultez cet article Smashing Magazine ).

Sinon, si vous souhaitez qu'un administrateur choisisse plus globalement des modèles de page / publication en fonction de certains critères, ou choisisse des modèles de page personnalisés pour l'ensemble du site, vous devrez ajouter une option de zone d'administration à votre thème et des options personnalisées code dans votre thème pour afficher la bonne page en fonction de cette option. L'ajout d'une option à la zone d'administration se fait facilement avec l'un des nombreux plugins mais peut également être fait à la main (voir, par exemple, cet article sur SitePoint ).


1
Merci pour votre réponse. Je sais comment créer des modèles de page pour les pages / articles basés sur l'héritière mais je ne peux pas trouver un moyen de donner des options de modèle pour la "Page d'index des articles de blog" qui utilise home.php (en utilisant la même terminologie que le diagramme vous avez fourni). Ceci est défini lorsqu'un utilisateur administrateur choisit une page pour afficher les publications dans Tableau de bord> Paramètres> Lecture. Cela affecte ensuite la page home.php / index.php. Je ne peux pas trouver un moyen de créer un autre modèle sans attribuer la page dans Tableau de bord> Paramètres> Lecture.
Ryan Coolwebs

@RyanCoolwebs Vous devrez probablement ajouter une option d'administration à votre thème qui permet de choisir entre les styles d'affichage de la page d'index des articles de blog, puis modifier home.php pour lire la valeur de l'option et afficher la variante de page appropriée.
iguanarama

Oui, je pense que l'utilisation de la fonction de personnalisation est probablement la meilleure façon de le faire. Je peux vérifier les options de personnalisation, puis récupérer la partie de modèle appropriée.
Ryan Coolwebs

0

Ok, vous voulez dire que vous voulez créer votre propre page de modèle pour afficher les articles de blog, non?

Ensuite, allez de cette façon créer un fichier php nommé blog-template.php

Dans ce fichier, mettez ce code au-dessus de tout.

<?php 
/*
* Template Name: Blog Post
*/
?>

Ensuite, au-dessous du code donné, placez tout votre code de la index.php/home.phppage sur cette page ci-dessus, enregistrez le fichier et créez maintenant une page dashboard, disons que le nom de cette page est "Blog"maintenant du côté droit chose page templateque nous venons de créer à Blog Postpartir de la liste déroulante des modèles .

Publiez la page et vous êtes prêt à avoir votre propre page pour afficher vos messages.

Faites-moi savoir si quelque chose d'autre était nécessaire.


OK, vous venez donc de reformuler la solution que OP a clairement indiquée comme incorrecte;) Créer un modèle de page et l'utiliser comme index de blog n'est pas la meilleure approche, je suppose.
Krzysiek Dróżdż

Ce n'est pas vraiment mal en soi, juste que l'OP a mal compris pourquoi les gens ont tendance à le faire de cette façon
Orun
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.