Benutzerdefinierte Blog-Seitenvorlage richtig erstellen
-
-
Ich denke,das ursprüngliche Problemist längstgelöst,aberich wolltenur sagen,dassmir das Lesen des Quellcodes von Plugins vielbeigebracht hat.Wenn Sieein Pluginim WP.org-Verzeichnisfinden,können Sie auf die Registerkarte Entwickler klicken,um den Code direktim Browser anzuzeigen und zu sehen,wieerfunktioniert.I guess the original issue is long since resolved now but I just wanted to say that reading through the source code of plugins has taught me a lot. If you can find a plugin on the WP.org directory you can click the developers tab to view the code straight from the browser, and see how does it.
- 0
- 2020-02-12
- rtpHarry
-
3 Antworten
- Stimmen
-
- 2018-07-17
Vergessen Sienicht,dass Wordpressin erster Linie als Blogging-CMS konzipiert wurde. Wennes um die Entwicklung von Themengeht,entscheiden sich Entwickler häufigfüreinen nicht standardmäßigen Ansatz,um das Potenzialfür weitere Funktionen zunutzen.
Theme-Entwickler haben drei Möglichkeiten,wenn sie sich demnähern,von deneneine (Nr. 2 unten) Sieerwähnt haben.
-
Bearbeiten Sie direkt die Datei
index.php
,um den Blog-Index zu ändern. Diesist keinegute Option,daindex.php
ein Fallback sein sollte,fallsein anderer Teil Ihrer Vorlagefehlt.- Vorteile: schnell undeinfach
- Nachteile: Fehleranfällig undgegen objektorientierte Prinzipien
-
Erstellen Sieeine Seitenvorlagefür den Blog-Index. Wie Siebereits sagten,entscheiden sich viele Theme-Entwicklerfür diesen Weg,da Sie auf diese Weise schnell die Kontrolle über den Blog-Index haben undtatsächlichmit verschiedenen Blog-Index-Vorlagen herumspielen können (wasbei der Entwicklungeines vielseitigen Themas hilfreichist ).
- Vorteile: Vielseitig,ermöglicht das Erstelleneines robusten Themas
- Nachteile: Sie verlieren die Möglichkeit,dienative Funktionalität von Wordpress aufzurufen,die sich auf den Blog-Indexbezieht.
-
Erstellen Siein Ihrem Themaeine
front-page.php
,home.php
undindex.php
. Diefront-page
ist die Startseitefür das Thema.home
verwendet standardmäßig Ihren Blog-Index undindex
ist Ihr Fallbackfür alle Vorlagen.- Vorteile: Bereinigen undnutzen Sie dienativen Objekte und Methoden von Wordpress
- Nachteile: Eingeschränkt durch Wordpress: Nichtidealfür viele der Arten von Optionen,die Sie heute sehen
Persönlichmagich # 2,weil diemeistenmeiner Wordpress-Entwicklungsprojekte heutzutagenichtnur Blogs sind,sondernganze Websitesmit umfassender Informationsarchitektur und komplexer Interaktivität.
Don't forget that Wordpress was primarily designed to be a blogging CMS, so when it comes to theme development, developers often opt for a non-standard approach in exchange for the potential for more features.
Theme developers have three options when they approach this, one of which (#2 below) you mentioned.
Directly edit the
index.php
to modify the blog index. This is not a good option becauseindex.php
should be the a fallback in case another part of your template is missing.- Pros: fast and easy
- Cons: error prone and against object oriented principles
Create a page template for the blog index. Like you said, many theme developers elect to go this route because it's a fast way to give you control over the blog index, and it actually gives you the ability to play around with different blog index templates (which is useful when developing a versatile theme).
- Pros: Versatile, allows for building a robust theme
- Cons: you lose the ability to call Wordpress' native functionality that pertains to the blog index.
Create a
front-page.php
,home.php
andindex.php
in your theme. Thefront-page
will be the home page for the theme.home
will default to your blog index andindex
will be your fallback for all templates.- Pros: Clean and makes full use of Wordpress' native objects and methods
- Cons: Limited by Wordpress: not ideal for many of the kinds of option-rich themes you see today
Personally I like to go with #2, because most of my Wordpress development projects these days are not just blogs: they're entire sites with deep information architecture and complex interactivity.
-
Dokumentationfür diese Funktionalität: https://developer.wordpress.org/themes/basics/template-hierarchy/#home-page-displayDocumentation for this functionality: https://developer.wordpress.org/themes/basics/template-hierarchy/#home-page-display
- 0
- 2020-01-10
- Pixelsmith
-
- 2017-01-04
Ich werdein meiner Antwortmehrere Grundlagenbehandeln. :)
Wenn Sieein eigenes Themaerstellen und die Standarddarstellungeiniger Seitentypen ändernmöchten (z. B. die Kategoriearchivseite odereine einzelne Blogpostseite),lesen Sie das Diagramm der WordPress-Vorlagenhierarchie . Es wird angezeigt,welche Dateienin Ihrem Themenverzeichnis verwendet werden,um welche Arten von Posts anzuzeigen.
Wenn Sieeine PHP-Dateiin Ihrem Thema haben,diemit einer Dateiin dieser Hierarchie übereinstimmt,wird sie von WordPress automatisch verwendet,z. B.
single.php
zum Anzeigeneineseinzelnen Beitrags. Wenn Siebereitsein Themamit dieser Datei haben,können Sie die Dateinatürlich ändern und sie wird auf der Site angezeigt.Wenn Siebenutzerdefinierte Seitenvorlagen habenmöchten,diese abernur voneinem Administratorgeändert werden sollen (Postfür Post),müssen Sieeinige Rollen und Funktionen überprüfen. Diese StackExchange-Antwort kann hilfreich sein . (Siemüssen diesebenutzerdefinierten Seitenvorlagennocherstellen. Weitere Informationenfinden Sie unter Smashing Magazine Artikel ).
Wenn Sie andernfallsmöchten,dassein Administratorglobalere Seiten-/Beitragsvorlagenbasierend aufbestimmten Kriterien auswählt oderbenutzerdefinierte Seitenvorlagenfür diegesamte Site auswählt,müssen Sie Ihrem Themaeine Administratorbereichsoption hinzufügen. undeinen benutzerdefinierten Codein Ihrem Design,um die richtige Seitebasierend auf dieser Option anzuzeigen. Das Hinzufügeneiner Option zum Admin-Bereichistmit einem der vielen Pluginseinfach,kann aber auch von Handerfolgen (siehe z. B. dieser Artikel auf SitePoint ).
Going to cover several bases in my answer. :)
If you are creating your own theme, and want to change the default presentation of some types of pages (e.g. the category archive page, or a single blog post page), then check out the diagram of the WordPress template hierarchy. It shows which files in your theme directory are used to display which types of post.
By having a php file in your theme that matches a file in that hierarchy, it will be automatically used by WordPress—such as
single.php
for displaying a single post. If you have a theme with that file already there, then obviously you can change the file and it will be reflected on the site.Separately, if you want to have custom page templates but only want an admin to be able to change them (on a post-by-post basis), then you need to do some checks on roles and capabilities; this StackExchange answer may be helpful. (You'd still need to create those custom page templates, see this Smashing Magazine article).
Otherwise, if you want an admin to more globally choose page/post templates based on certain criteria, or to choose custom page templates for the entire site, then you'll need to add an admin-area option to your theme, and some custom code in your theme to display the right page based on that option. Adding an option to the admin area is easily done with one of the many plugins but also can be done by hand (see, for example, this article on SitePoint).
-
Dankefür deine Antwort.Ich weiß,wieman Seitenvorlagenfür Seiten/Beiträgebasierend auf der Erbschafterstellt,aberich kann keine Möglichkeitfinden,Vorlagenoptionenfür "Blog Posts Index Page" anzugeben,die home.php verwenden (unter Verwendung derselben Terminologie wie Diagramm)Sie zur Verfügunggestellt).Dies wirdfestgelegt,wennein Administratoreine 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öglichkeitfinden,eine alternative Vorlage zuerstellen,ohne die Seite NICHT unter Dashboard> Einstellungen> Lesen zuzuweisen.Thanks for your answer. I'm aware of how to make page templates for pages/posts based on the heirachy but I can't figure out a way to give template options for "Blog Posts Index Page" which is using home.php (using same terminology as diagram you provided). This is set when an admin user chooses a page to display posts in Dashboard > Settings > Reading. That then assigns the page home.php/index.php. I cannot figure out a way to make an alternate template without NOT assigning the page in Dashboard > Settings > Reading.
- 1
- 2017-01-04
- Ryan Coolwebs
-
@RyanCoolwebs Siemüssten Ihrem Thema wahrscheinlicheine Admin-Option hinzufügen,dieeine Auswahl zwischen Anzeigestilenfür die Indexseite der Blog-Beiträgeermöglicht,und dann home.phpbearbeiten,um den Wert der Option zu lesen und dieentsprechende Seitenvariante anzuzeigen.@RyanCoolwebs You would probably need to add an admin option to your theme that allows a choice between display styles for the blog posts index page, and then edit home.php to read the value of the option and display the appropriate page variation.
- 0
- 2017-01-04
- iguanarama
-
Ja,ich denke,die Verwendung der Customizer-Funktionist wahrscheinlich derbeste Weg,diestatsächlich zutun.Ich kann die Customizer-Optionen überprüfen und dann denentsprechenden Vorlagenteil abrufen.Yes, I think using the customiser feature is probably the best way of actually doing this. I can check on customiser options and then retrieve the appropriate template part.
- 0
- 2017-01-04
- Ryan Coolwebs
-
- 2017-01-04
Ok,Siemeinen,Siemöchteneine eigene Vorlagenseiteerstellen,um Blog-Beiträge anzuzeigen,oder?
Dannerstellen Sie auf diese Weiseeine PHP-Dateimit dem Namen
blog-template.php
Fügen Siein dieser Datei diesen Code über allesein.
<?php /* * Template Name: Blog Post */ ?>
Fügen Sie dann unter dem oben angegebenen Code Ihrengesamten Code von der Seite
index.php/home.php
auf diese Seiteein,speichern Sie die Datei understellen Siejetzteine Seite aus demdashboard
Angenommen,der Name dieser Seite lautet"Blog"
Wählen Sienun von der rechten Seitechose page template
aus,die wirgerade alsBlog Post
aus diesem Droperstellt haben-down von Vorlagen.Veröffentlichen Sie die Seite und Sie könneneine eigene Seiteerstellen,auf der Ihre Beiträge angezeigt werden.
Lassen Siemich wissen,wennnochetwasbenötigt wird.
Ok, you mean you want to create your own template page to show blog posts, right ?
Then go this way create a php file named
blog-template.php
Inside that file put this code on top of every thing.
<?php /* * Template Name: Blog Post */ ?>
Then below above given code, put all your code from
index.php/home.php
page to this above page, save the file and now create a page fromdashboard
, say as name of that page is"Blog"
Now from right sidechose page template
which we just created asBlog Post
from that drop-down of templates.Publish the page and you are good to go for having your own page to show your posts.
Let me know if any thing else needed.
-
OK,Sie habengerade die Lösung aktualisiert,die OPeindeutig alsfalsch angegeben hat;) Das Erstelleneiner Seitenvorlage und deren Verwendung als Blog-Indexist wohlnicht derbeste Ansatz.OK, so you've just refrased the solution that OP clearly stated as wrong ;) Creating page template and using it as blog index isn't the best approach, I guess.
- 0
- 2018-03-18
- Krzysiek Dróżdż
-
Esist an sichnicht wirklichfalsch,nur dass OPmissverstanden hat,warum die Leute dazuneigen,es so zumachenIt's not really wrong per se, just that OP misunderstood why people tend to do it this way
- 0
- 2018-07-17
- Orun
Ichmöchteeine neuebenutzerdefinierte Seitenvorlagefür die Präsentation von Blog-Postserstellen. Mirist klar,dassbeim Zuweiseneiner Seite zum Anzeigen von Beiträgen über Einstellungen> Lesen home.php zum Anzeigen des Seiteninhalts zugewiesen wird - als Beiträge aufeiner Seite. Außerdem wird die Option zum Zuweiseneiner Seitenvorlagein der Seitenbearbeitungsansicht ausgeblendet.
Im Moment wirdein Standardartikelnach Artikelansicht angezeigt. Ichmöchte dem Administratoreine weitere Option zur Auswahleiner anderen Vorlagebieten,mit der die Blogsin einem Gurt- oder Mauerwerkslayoutgestaltet werden können. Ichbin mirnicht sicher,wieich dasmachen soll.
Ich könnte diestun,indemich die Seitenicht für die Anzeige von Blogsim Administratorbereich Einstellungen> Lesen zuweisen und dann dem Administratorerlauben würde,die spezifische Vorlage der Seitemit Seitenattribute in der Seitenbearbeitung,jedochgemäß https://make.wordpress.org/themes/2014/06/28/correct-handling-of-static-front-page-and -custom-blog-posts-index-template/, dasist derfalsche Weg .
Ich habe versucht,bei Googlenach Lösungen zu suchen,aberichfindeimmer wieder Empfehlungenfür die Verwendung von Plugins. Könntemichjemand auf hilfreiche Ressourcen hinweisen?