Erstellen Sie benutzerdefinierte Blogseitenvorlagen auf die richtige Weise

8

Ich möchte eine neue benutzerdefinierte Seitenvorlage für die Präsentation von Blog-Posts erstellen. Mir ist klar, dass beim Zuweisen einer Seite zum Anzeigen von Beiträgen über Einstellungen> Lesen die Datei home.php zum Anzeigen des Seiteninhalts zugewiesen wird - als Beiträge auf einer Seite. Außerdem wird die Option zum Zuweisen einer Seitenvorlage in der Seitenbearbeitungsansicht ausgeblendet.

Derzeit wird ein Standardartikel nach Artikelansicht angezeigt. Ich möchte dem Administrator eine weitere Option zur Auswahl einer anderen Vorlage bieten, mit der die Blogs in einem Gurt- oder Mauerwerkslayout gestaltet werden können. Ich bin mir nicht sicher, wie ich das machen soll.

Ich konnte es tun , indem nicht die Zuordnung der Seite anzuzeigen Blogs in den Einstellungen> Reading Admin - Bereich und dann erlaubt Benutzer admin die spezifische Vorlage Seite zuweisen mit Seitenattribute Menü - Seite bearbeiten , aber nach https://make.wordpress.org / theme / 2014/06/28 / korrekter Umgang mit statischer Titelseite und benutzerdefinierten Blog-Posts- Indexvorlage / , dies ist der falsche Weg .

Ich habe versucht, bei Google nach Lösungen zu suchen, aber alles, was ich finde, sind Empfehlungen für Plugins. Könnte mich jemand auf hilfreiche Ressourcen hinweisen?

Ryan Coolwebs
quelle
Ich denke, das ursprüngliche Problem ist längst behoben, aber ich wollte nur sagen, dass mir das Lesen des Quellcodes von Plugins viel beigebracht hat. Wenn Sie ein Plugin im WP.org-Verzeichnis finden, können Sie auf die Registerkarte Entwickler klicken, um den Code direkt im Browser anzuzeigen und zu sehen, wie er funktioniert.
rtpHarry

Antworten:

7

Vergessen Sie nicht, dass Wordpress in erster Linie als Blogging-CMS konzipiert wurde. Wenn es um die Entwicklung von Themen geht, entscheiden sich Entwickler häufig für einen nicht standardmäßigen Ansatz, um das Potenzial für mehr Funktionen zu nutzen.

Theme-Entwickler haben drei Möglichkeiten, wenn sie sich dem nähern, von denen eine (Nr. 2 unten) Sie erwähnt haben.

  1. Bearbeiten Sie das direkt, index.phpum den Blog-Index zu ändern. Dies ist keine gute Option, da index.phpdies ein Fallback sein sollte, falls ein anderer Teil Ihrer Vorlage fehlt.

    • Vorteile: schnell und einfach
    • Nachteile: fehleranfällig und gegen objektorientierte Prinzipien
  2. Erstellen Sie eine Seitenvorlage für den Blog-Index. Wie Sie bereits sagten, entscheiden sich viele Theme-Entwickler für diesen Weg, da Sie auf diese Weise schnell die Kontrolle über den Blog-Index haben und tatsächlich mit verschiedenen Blog-Index-Vorlagen herumspielen können (was bei der Entwicklung eines vielseitigen Themas hilfreich ist ).

    • Vorteile: Vielseitig, ermöglicht das Erstellen eines robusten Themas
    • Nachteile: Sie verlieren die Möglichkeit, die native Funktionalität von Wordpress aufzurufen, die sich auf den Blog-Index bezieht.
  3. Erstellen Sie ein front-page.php, home.phpund index.phpin Ihrem Thema. Das front-pagewird die Homepage für das Thema sein. homewird standardmäßig auf Ihren Blog-Index indexangewendet und ist Ihr Fallback für alle Vorlagen.

    • Vorteile: Bereinigen Sie die nativen Objekte und Methoden von Wordpress und nutzen Sie sie vollständig
    • Nachteile: Eingeschränkt durch Wordpress: Nicht ideal für viele der Arten von Optionen, die Sie heute sehen

Persönlich mag ich # 2, weil die meisten meiner Wordpress-Entwicklungsprojekte heutzutage nicht nur Blogs sind, sondern ganze Websites mit umfassender Informationsarchitektur und komplexer Interaktivität.

Orun
quelle
Dokumentation für diese Funktionalität: developer.wordpress.org/themes/basics/template-hierarchy/…
Pixelsmith
0

Ich werde in meiner Antwort mehrere Grundlagen behandeln. :) :)

Wenn Sie ein eigenes Thema erstellen und die Standarddarstellung einiger Seitentypen ändern möchten (z. B. die Kategoriearchivseite oder eine einzelne Blogpostseite), lesen Sie das Diagramm der WordPress-Vorlagenhierarchie . Es zeigt, welche Dateien in Ihrem Themenverzeichnis verwendet werden, um welche Arten von Posts anzuzeigen.

Wenn Ihr Thema eine PHP-Datei enthält, die mit einer Datei in dieser Hierarchie übereinstimmt, wird sie von WordPress automatisch verwendet, z. B. single.phpzum Anzeigen eines einzelnen Beitrags. Wenn Sie bereits ein Thema mit dieser Datei haben, können Sie die Datei natürlich ändern und sie wird auf der Site angezeigt.

Wenn Sie benutzerdefinierte Seitenvorlagen haben möchten, diese aber nur von einem Administrator geändert werden sollen (Post für Post), müssen Sie einige Rollen- und Funktionsprüfungen durchführen. Diese StackExchange-Antwort kann hilfreich sein. (Sie müssen diese benutzerdefinierten Seitenvorlagen noch erstellen, siehe diesen Artikel im Smashing Magazine. )

Wenn Sie möchten, dass ein Administrator Seiten- / Beitragsvorlagen basierend auf bestimmten Kriterien globaler auswählt oder benutzerdefinierte Seitenvorlagen für die gesamte Site auswählt, müssen Sie Ihrem Thema eine Administratorbereichsoption und einige benutzerdefinierte hinzufügen Code in Ihrem Thema, um die richtige Seite basierend auf dieser Option anzuzeigen. Das Hinzufügen einer Option zum Admin-Bereich ist mit einem der vielen Plugins einfach, kann aber auch von Hand erfolgen (siehe z. B. diesen Artikel auf SitePoint ).

Leguanarama
quelle
1
Danke für deine Antwort. Ich weiß, wie man Seitenvorlagen für Seiten / Beiträge basierend auf der Erbschaft erstellt, aber ich kann keine Möglichkeit finden, Vorlagenoptionen für "Blog Posts Index Page" anzugeben, die home.php verwenden (unter Verwendung derselben Terminologie wie Diagramm) Sie zur Verfügung gestellt). Dies wird festgelegt, wenn ein Administrator eine Seite zum Anzeigen von Beiträgen unter Dashboard> Einstellungen> Lesen auswählt. Das weist dann die Seite home.php / index.php zu. Ich kann keine Möglichkeit finden, eine alternative Vorlage zu erstellen, ohne die Seite NICHT unter Dashboard> Einstellungen> Lesen zuzuweisen.
Ryan Coolwebs
@RyanCoolwebs Sie müssten Ihrem Thema wahrscheinlich eine Admin-Option hinzufügen, die eine Auswahl zwischen Anzeigestilen für die Indexseite der Blog-Beiträge ermöglicht, und dann home.php bearbeiten, um den Wert der Option zu lesen und die entsprechende Seitenvariante anzuzeigen.
Iguanarama
Ja, ich denke, die Verwendung der Customizer-Funktion ist wahrscheinlich der beste Weg, dies tatsächlich zu tun. Ich kann die Customizer-Optionen überprüfen und dann den entsprechenden Vorlagenteil abrufen.
Ryan Coolwebs
0

Ok, du meinst, du möchtest deine eigene Vorlagenseite erstellen, um Blog-Beiträge anzuzeigen, oder?

Dann gehen Sie auf diese Weise und erstellen Sie eine PHP-Datei mit dem Namen blog-template.php

In diese Datei setzen Sie diesen Code über alles.

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

Fügen Sie dann unten über dem angegebenen Code Ihren gesamten Code von index.php/home.phpSeite zu Seite oben ein, speichern Sie die Datei und erstellen Sie jetzt eine Seite von dashboard, beispielsweise als Name dieser Seite. "Blog"Jetzt von der rechten Seite, chose page templatedie wir gerade Blog Postaus dieser Dropdown-Liste von Vorlagen erstellt haben .

Veröffentlichen Sie die Seite und Sie können eine eigene Seite erstellen, auf der Ihre Beiträge angezeigt werden.

Lassen Sie mich wissen, wenn noch etwas benötigt wird.

Akram ul haq
quelle
OK, Sie haben gerade die Lösung überarbeitet, die OP eindeutig als falsch angegeben hat;) Das Erstellen einer Seitenvorlage und deren Verwendung als Blog-Index ist wohl nicht der beste Ansatz.
Krzysiek Dróżdż
Es ist an sich nicht wirklich falsch, nur dass OP missverstanden hat, warum die Leute dazu neigen, es so zu machen
Orun