Wo soll ich meinen Code ablegen: Plugin oder functions.php?
-
-
Ichfragemich,was Tatsachenfür den Zweck dieser Frage darstellen würden.Person A sagt,dass CPTin das Plugingeht,Person B sagt,dass CPTin das Themageht.Wie können wireine Tatsachebeschaffen,umeine der Meinungen zubestätigen?Dies könntegefährlichnahe an "nicht konstruktiv" liegen.I wonder what would constitute facts for the purpose of this question. Person A says CPT go in plugin, Person B says CPT go in theme. How can we procure a fact to validate one of opinions? This might be dangerously close to "not constructive".
- 0
- 2012-11-18
- Rarst
-
6 Antworten
- Stimmen
-
- 2012-11-19
Ich würdemit dieser Fragebeginnen: Bezieht sich die Funktionalität auf die Präsentation von Inhalten oder auf die Generierung/Verwaltung von Inhalten oder der Website oder der Benutzeridentität?
Wenn die Funktionalität nicht speziell mit der Präsentation von Inhalten zusammenhängt,befindet sie sich direktim Plugin-Gebiet. Diese Listeist lang:
- Ändern der WP-Kernfilter (
wp_head
-Inhalt wie kanonische Links,Generator und andere HTML-Metas usw. - Site Favicon
- Post-Content-Shortcodes
- Links zum Teilen von Posts
- Google Analytics (und ähnliche) Fußzeilenskripte
- SEO Tools/Kontrollen
- usw.
Wenn die Funktionalität mit der Präsentation von Inhalten zusammenhängt,handeltes sich umeinen Kandidaten für die Aufnahmein das Thema. An dieser Stelle würdeich auf @ Raf912s Theme-Switch-Kriterium zurückgreifen: Würden Sie die Funktionalität verpassen,wenn Sie wechseln das Thema? Wenn die Antwort auf diese Frage nein lautet,gehört die Funktionalität zum Thema. Einige Beispiele:
- Entfernen/Überschreiben des CSS der WP-Kerngalerie
- Filtern der Länge von Post-Auszügen,"Lesen Siemehr" -Text usw.
- Alles,was über
add_theme_support()
(I. Angenommen,dies sollte offensichtlich sein - Benutzerdefiniertes CSS
Normalerweisebieten diesebeiden Frageneine ziemlich klare Unterscheidungslinie. Esgibt jedoch Ausnahmen.
Benutzerdefinierte Beitragstypen
Benutzerdefinierte Beitragstypen sindbeispielsweiseeine einzigartige Mischung aus Inhaltsgenerierung und -präsentation,da die Vorlagenhierarchiefüreinen einzelnen Beitragstyp Archivindexseiten und einzelne Postseiten . Der Aspekt der Inhaltsgenerierung von CPTs würde sienormalerweise direktim Plugin-Territoriumplatzieren. Plugins könnenjedoch keine Vorlagenseiten definieren,die von Natur ausin das Design/Layout/den Stileinesbestimmten Themaspassen (insbesondere,wenn das CPT andere als den üblichen Titel/Inhalt/Meta anzeigt oderbenutzerdefinierte Taxonomien zugeordnet sind).
Langfristigbesteht die Lösungfür diese Ungleichheit,IMHO,darin,eine Standardkonvention/einen Standardkonsensfür die Definition von CPTsfürbestimmte Arten von Inhalten (Immobilienlisten,Kalenderereignisse,E-Commerce-Produkte,Buch-/Medienbibliothek) zu haben Einträge usw.). Auf diese Weisebleibenbenutzergenerierte Inhalte zwischen Themenportierbar,die die Standard-/Konventionsdefinitioneinesbestimmten CPTimplementieren,während Themenentwickler die Flexibilitätbehalten,das Design/Layout/den Stil dieses CPTin den Themenvorlagendateien zu definieren.
Social Media Links
In ähnlicher Weise würdeichnormalerweise sagen,dass Social-Media-Profil-Links,diein aktuellen Themen sogut wie allgegenwärtiggeworden sind,Plugin-Territorien sind,da sienichtsmit der Präsentation von Inhalten zutun haben. Diebeste Lösung wäre,diese Profileirgendwoim Kern zu definieren. Derzeitgibt esjedoch keine Standard-/Konsensmittel zum Definieren dieser Links. Sind sie auf Site-Setting-Ebene oderpro Benutzer ambesten definiert? Wennpro Benutzer,welches Meta des Benutzers wirdin der Vorlage angezeigt? usw.
Langfristiggesehenbesteht die Lösungfür diese Ungleichheit darin,dassentweder der Kern definiert,wo diese Links definiert sind,oder dass die Theme-Entwickler-Communityeinen eigenen Konsensentwickelt. In der Zwischenzeitbleibt wirklichnichts anderes übrig,als siein jedem Thema definiert zu halten.
I would start with this question: Is the functionality related to presentation of content, or with generation/management of content, or of the site, or of the user identity?
If the functionality is not related specifically to presentation of content, then it is squarely within Plugin Territory. This list is long:
- Modifying core WP filters (
wp_head
content, such as canonical links, generator and other HTML meta, etc - Site Favicon
- Post-content shortcodes
- Post sharing links
- Google Analytics (and similar) footer scripts
- SEO tools/controls
- etc.
If the functionality is related to presentation of content, then it is a candidate for being included in the Theme. At this point, I would revert to @Raf912's Theme-switch criterion: would you miss the functionality when you switch Themes? If the answer to that question is no, then the functionality belongs in the Theme. Some examples:
- Removing/overriding the WP core Gallery CSS
- Filtering post excerpt length, "read more" text, etc.
- Anything implemented via
add_theme_support()
(I suppose this one should be obvious) - Custom CSS
Normally, these two questions will provide a fairly clear line of differentiation; however, there are exceptions.
Custom Post Types
Custom Post Types, for example, are a bit of a unique hybrid of content generation and presentation, given the way the Template Hierarchy works for single-post-type archive index pages and single post pages. The content-generation aspect of CPTs would normally place them squarely in Plugin Territory; however, Plugins cannot define template pages that inherently fit into the design/layout/style for any given Theme (especially if the CPT displays other than the usual Title/Content/Meta, or has custom taxonomies associated with it).
Long-term, the solution to this disparity, IMHO, is to have a standard convention/consensus for the definition of CPTs for given types of content (real estate listings, calendar events, e-commerce products, book/media library entries, etc.). That way, user-generated content would remain portable between Themes that implement the standard/convention definition of a given CPT, while Theme developers retain the flexibility to define the design/layout/style of that CPT in the Theme template files.
Social Media Links
Similarly, I would normally say that social media profile links, ave become all but ubiquitous in current Themes, are Plugin Territory, because they have nothing to do with presentation of content. The best solution would be for these profiles to be defined somewhere in core; however, there is currently no standard/consensus means of defining these links. Are they best-defined at the site-setting level, or on a per-user basis? If per-user, which user's meta gets exposed in the template? etc.
So again, long-term, the solution to this disparity is for either core to define where these links are defined, or else for the Theme developer community to develop its own consensus. In the meantime, there's really nothing for it but to keep them defined within each Theme.
-
"add_theme_support" ("automatische Feed-Links"); "istnichtpräsentativ.Aberesist [gemäß den Themenrichtlinienerforderlich] (http://codex.wordpress.org/Theme_Review#Theme_Features).Warumistesein notwendiges Risiko,diese Funktionalitätnacheinem Themenwechsel zu verlieren?`add_theme_support( 'automatic-feed-links' );` is not presentational. But it is [required by the theme guidelines](http://codex.wordpress.org/Theme_Review#Theme_Features). Why is it a necessary risk to loose this functionality after a theme switch?
- 0
- 2012-11-19
- fuxia
-
Alles,was über `add_theme_support ()`implementiert wird,kannnur über das Themeimplementiert werden.Die Verwendung von "add_theme_support" ("automatische Feed-Links")innerhalb des Themas *gewährleistet *tatsächlicheine konsistente Erfahrung von Thema zu Thema,da diegenerierten Feed-Linksgleich sind.Anything that is implemented via `add_theme_support()` can only be implemented via the Theme. Using `add_theme_support( 'automatic-feed-links' )` within the Theme actually *ensures* a consistent experience from Theme to Theme, since the feed links generated will be the same.
- 1
- 2012-11-19
- Chip Bennett
-
Ich denke,esistfalschbenannt: Feed-Links sindnichtpräsentativ.Wenn dasnächste Thema diese Funktionnicht aufruft,verliert der Benutzer die Feed-Links.Und das können Sieproblemlosper Plugin hinzufügen.Deshalbbin ich verwirrt.:) :)I think it is misnamed: Feed links are not presentational. If the next theme doesn’t call that function the user will lose the feed links. And you can add that per plugin without any problem. That’s why I am confused about it. :)
- 4
- 2012-11-19
- fuxia
-
Sie wissen: Dasistein guter Punkt.:) :)You know: that's a good point. :)
- 1
- 2012-11-19
- Chip Bennett
-
- 2012-11-18
Eineinfacher Test,bei dem der Code ambestenplatziertist:
- schreibe den Codein diefunctions.php
- Thema wechseln
-
Vermissen Sie die Funktionalität,funktioniert das Blognicht richtig oderbleiben Fragmente des alten Themas (z. B. Shortcodes) übrig?
-
ja:in ein Plugineinfügen
-
nein:belassen Sieesin functions.php
-
Beispiele: Schreiben Sieeinen Shortcode.Nach dem Wechseln des Themasbleiben dieeinfachen Shortcodesin Ihren Posts.Es wird alsobesserin einem Pluginplatziert.
Schreiben Sieeine Funktion,um die letzten Kommentare aufzulisten.Nach dem Wechseln des Themasist allesin Ordnung,damöglicherweise das andere Themaeine entsprechende Funktion hat.
Es hängt wirklich vom Code ab und davon,wasertun wird.Einige Codesbeeinflussennur das Design oder den Inhalt des Themas,andere ändern Blog-Beiträge.
An easy test where the code is best placed:
- write the code into the functions.php
- switch theme
do you miss the functionality, is the blog not proper working or fragments of the old theme (e.g. shortcodes) are left?
yes: put it into a plugin
no: leave it in functions.php
Examples: Write a shortcode. After switching the theme, the plain shortcodes are left in your posts. So it will be better placed in a plugin.
Write a function to list the last comments. After switching the theme, everything is ok because maybe the other theme have an equivalent function.
It really depends on the code and what it will do. Some code only influence the styling or content of the theme, some others will modifiy blog posts.
-
+1 Wenn der Codethemenspezifischist,lauteter "functions.php".Wennesfürmehr alsein Themageltenmuss,fügen Sieesin ein Pluginein.+1 If the code is specific to the theme, put it is `functions.php`. If it needs to apply to more than one theme, put it in a plugin.
- 11
- 2012-11-18
- s_ha_dum
-
- 2012-12-08
Ichglaubenicht,dasseseine einfache Antwort auf diese Fragegibt,aberich wette,wir könntenein Flussdiagrammerstellen,umbei der Entscheidung zu helfen. Hieristeine grobe Darstellungeines solchen Flussdiagramms,daserweitert werden kann und sollte. Kommentarmit Vorschlägen!
- Soll dieser Code aufeiner Single-Site-Installation von WordPressgehostet werden?
- Ja - Ändert sich das Thema der Sitenurbei größeren Neugestaltungen und Funktionsänderungen?
- Ja - Ist derbetreffende Code spezifischfür dieses aktuelle Design ?
- Ja:functions.php
- Nein: Plugin
- Ja - Ist derbetreffende Code spezifischfür dieses aktuelle Design ?
- Ja - Ändert sich das Thema der Sitenurbei größeren Neugestaltungen und Funktionsänderungen?
- Nein (es ändert sich oft oder auseiner Laune heraus) - Plugin
- Nein (Multsisite) - Hosten Sie die Multisite-Installation ODER handeltes sich umeine gehostete Multisite-Lösung,die Pluginsermöglicht?
- Ja: Ist diebetreffende Funktionalität spezifischfür diese Site oder kann/sollte sie von anderen Sitesim Netzwerk verwendet werden?
- Spezifischfür diese Site:functions.php
- Aufmehrere Sites verteilt - Möchten Siees aufjeder Siteerzwingen?
- Ja: Plugin,gespeichertim Verzeichnismu-plugins odernetzwerkaktiviert
- Nein: Ist diesein Netzwerk von nicht verwandten Sites? (z. B. verschiedene Kunden)
- Ja: Wärees schlecht oder unprofessionell,wenn Client A das Plugin,das Siefür Client B,C und Dgeschrieben haben,gesehen oder aktiviert hätte? (z. B. würdeesmöglicherweise die Sitebeschädigen oder unerwünschte Funktionalität verursachen)
- Ja:functions.php
- Nein: Plugin
- Ja: Wärees schlecht oder unprofessionell,wenn Client A das Plugin,das Siefür Client B,C und Dgeschrieben haben,gesehen oder aktiviert hätte? (z. B. würdeesmöglicherweise die Sitebeschädigen oder unerwünschte Funktionalität verursachen)
- Nein: Wahrscheinlich Plugin
- Nein (gehostet voneinem Dienst wie VIP,der keine Plugins zulässt): Verwenden Siefunctions.php
Einige andere Gedanken,dieich hiernichteinfügen konnte:- Übergeordnete Themen - Manchmalistesmit gemeinsamgenutzten Funktionenbesser,ein übergeordnetes Thema zuerstellen und die Funktionalitätin die Dateifunctions.php des übergeordneten Themas aufzunehmen.
- Plugin-Verzeichnissegroßer Installationenmit mehreren Standorten können schnell unruhig werden. Daheristesmanchmal ambesten,gemeinsamgenutzte Funktionen,die voneinem geringen Prozentsatz der Websites (z. B. & lt; 1%) verwendet werden,in functions.php-Dateien zu duplizieren.
I don't think there's an easy answer to this question, but I bet we could make a flow chart to help with the decision. Here's a rough outline of such a flow chart, which can and should be expanded. Comment with suggestions!
- Is this code to be hosted on a single-site installation of WordPress?
- Yes - Does the site's theme only change with major redesigns and shifts in functionality?
- Yes - Is the code in question specific to this current design?
- Yes: functions.php
- No: Plugin
- No (it changes often or at a whim) - Plugin
- Yes - Is the code in question specific to this current design?
- No (Multsisite) - Are you hosting the multisite installation OR is it a hosted multisite solution that allows plugins?
- Yes: Is the functionality in question specific to this site, or can/should it be used by other sites in the network?
- Specific to this site: functions.php
- Shared amongst multiple sites - Do you want to force it on every site?
- Yes: Plugin, stored in mu-plugins directory or network-activated
- No: Is this a network of unrelated sites? (e.g. different clients)
- Yes: Would it be bad or unprofessional if client A saw or activated the plugin you wrote for clients B, C, and D? (e.g. maybe it would break the site or cause undesirable functionality)
- Yes: functions.php
- No: Plugin
- No: Probably plugin
- Yes: Would it be bad or unprofessional if client A saw or activated the plugin you wrote for clients B, C, and D? (e.g. maybe it would break the site or cause undesirable functionality)
- No (hosted by a service like VIP that doesn't allow plugins): use functions.php
- Yes: Is the functionality in question specific to this site, or can/should it be used by other sites in the network?
- Yes - Does the site's theme only change with major redesigns and shifts in functionality?
- Parent themes -- sometimes with shared functionality it would be better to make a parent theme and put the functionality in the parent theme's functions.php file.
- Plugin directories of large multisite installations can quickly become unruly, so sometimes shared functionality used by a low percentage of sites (e.g. < 1%) would be best to duplicate in functions.php files.
-
- 2014-02-04
Von hier aus Themengegen Plugins
Fügen Sieeinem untergeordneten Themabenutzerdefinierten Code hinzu,damitbeim Aktualisieren des übergeordneten Themas Ihrbenutzerdefinierter Codenicht verlorengeht.
Sie können auchein ortsspezifisches Pluginerstellen,das auch Ihrengesamtenbenutzerdefinierten Codeenthält.
Was das Schreiben von Codeim Vergleich zu Pluginsbetrifft,können Sie Pluginsfür und die Funktionen verwenden. Für dasmeiste,was Siemöchten,ist die Handcodierung diebeste,da sieeinfacher zu ändernist,außerin einigen Fällen wie Metaboxen,in denen Siemöglicherweise die Verwendung von ain Betracht ziehen Plugin,es sei denn,Sie sindein Theme-Entwickler.
function modify_contact_methods($profile_fields) { // Add new fields $profile_fields['twitter'] = 'Twitter Username'; $profile_fields['facebook'] = 'Facebook URL'; $profile_fields['gplus'] = 'Google+ URL'; return $profile_fields; } add_filter('user_contactmethods', 'modify_contact_methods');
http://codex.wordpress.org/Plugin_API/Filter_Reference/user_contactmethods
- Neuenbenutzerdefinierten Beitragstyp hinzufügen - Code
- Fügen Sie dem Benutzerneue Felder hinzu - Code oben
- Fügen Sieneue Widgets hinzu - Code
- Fügen Siebenutzerdefinierte Permalinks hinzu - WordPress-Permalink-Einstellungen
From here Themes VS Plugins
Add custom code to a child theme so when you update the parent theme, your custom code is not lost.
You can also create a site specific plugin which contains all your custom code as well.
As far as writing code versus plugins, you can use plugins to and the functions however for most of what you want, hand coding is the best as its easier to modify except in some cases like meta boxes where you may consider using a plugin unless you're a theme developer.
function modify_contact_methods($profile_fields) { // Add new fields $profile_fields['twitter'] = 'Twitter Username'; $profile_fields['facebook'] = 'Facebook URL'; $profile_fields['gplus'] = 'Google+ URL'; return $profile_fields; } add_filter('user_contactmethods', 'modify_contact_methods');
http://codex.wordpress.org/Plugin_API/Filter_Reference/user_contactmethods
- Add new custom post type - Code
- Add new fields to the Users - Code Above
- Add new widgets - Code
- Add custom permalinks - WordPress Permalink Settings
-
- 2015-01-28
Ich weiß,dass diesein totes Pferdist und dass Chipes ziemlichgut abgedeckt hat,wollte aberein paar Gedanken hinzufügen.
Wenn Sie Ihren Lebensunterhaltmit der Programmierung verdienen und unter Fristen an WordPress-Websites arbeiten,werden Siefeststellen,dasses wirklich auf die Zeit ankommt.
Meistens,insbesonderefür Anfänger,istes viel schneller undeinfacher,einem Themaeinfach alles hinzuzufügen,was Siebenötigen,undes alserledigt zubezeichnen.
Abgesehen davon, wenn Sie regelmäßig an WordPress arbeiten,sollten Sieernsthaft überlegen,Folgendes zutun: :
- Erstellen Sieein Plugin-Skelett
Dies sollte allesbehandeln,was Sienormalerweisemit einem Plugintunmüssen,einschließlich Aktivierung,Deaktivierung,Versionsaktualisierung,Erstellen von Admin-Panels und Deinstallieren.
Wenn Sie sich die Zeit dafürnehmen,finden Sie:
- Das Hinzufügen von Funktionen über Plugins
- Sie könneneine solide Liste von Pluginserstellen,die Siebei Bedarffür andere Projekte wiederverwenden können,wodurch Sie sich auf lange Sicht viel Zeit sparen.
- Sie können sie öffentlich zugänglichmachen,wenn Sie zusätzliche Sichtbarkeit wünschen
Sie könnenjetzt die Dinge richtig aufbauen und zukünftige Projekte schnellererledigen.
- Erstellen Sieein Themenskelett
Dies sollte allesbehandeln,was üblicherweisein einem Themabenötigt wird:
- Ein Kern-Stylesheetmit Styles,die Sie häufig verwenden (Zurücksetzen usw.)
- Eine richtigeindex.php-Datei,die alles verarbeitet,was Siefüreine Vorlagebenötigen
- Einefunctions.php-Datei - Sie werden siebei weitemnicht so oft verwenden,aber sie wirdtrotzdemnützlich sein.
Wenn Sie dieserledigt haben,erstellen Sieein untergeordnetes Themenskelett,das Ihrprimäres Thema verwendet.
- Fügen Sie das Stylesheet hinzu,das auf Ihr übergeordnetes Thema verweist.
- Fügen Sie die Dateifunctions.php hinzu
Sobald Sie diesebeiden Dingeerledigt haben,wird das Erstellenneuer Websitesfür Benutzer viel schneller.
Wenn Sie die obengenannten Schritte ausführen,können Sie Folgendestun:
- Verbringen Sie Ihreneugefundene Freizeit damit,sichmit PHP,WordPress,JavaScript,CSS und/odermySQL vertraut zumachen. Jemehr Sie davonerfahren,desto schneller werden Sie die Dingeerledigen.
- Aktualisieren Sie Ihre Plugin-,Theme- und untergeordneten Themenskelette,wenn Sie Dingefinden,die Sie verbessern sollten. Egal wiegut Sie sind,wenn Sie weiter lernen,werden Sie Verbesserungenfinden.
Und wenn Sie alle obengenannten Schritte ausführen ,werden Siefeststellen,dass die Antwort von Chipnichtnuridealist,sondern auch optimal wird.
I know this is a dead horse and that Chip has pretty much covered it, but wanted to add a few thoughts.
If you make a living programming and find yourself working on wordpress sites under deadlines, you are going to find that it really comes down to time.
More often than not, especially for those just starting out, it is much faster and simpler to just add whatever you need into a theme and call it done.
That being said, if you work on wordpress on a semi regular basis, you should seriously consider doing the following:
- Build out a plugin skeleton
This should handle everything that you will commonly need to do with a plugin, including activation, deactivation, version updating, building admin panels, and uninstalling.
If you make the time to do this, you will find:
- It no longer takes much extra time to add functionality via plugins
- You can start building a solid list of plugins to re-use on other projects as needed, saving yourself a lot of time in the long run.
- You can make them publicly available if you want extra visibility
You can now build things out properly and get future projects done more quickly.
- Build out a theme skeleton
This should handle everything that is commonly needed in a theme:
- A core style sheet containing styles that you use commonly (resets, etc.)
- A proper index.php file, handling everything you need for any template
- A functions.php file - you won't use it nearly as much, but it will still come in handy.
Once you have that done, build out a child theme skeleton that uses your primary theme.
- Add the stylesheet, referencing your parent theme.
- Add the functions.php file
Once you have these two things done, creating new sites for people becomes much faster.
If you do the above, you can then work on the following:
- Spend your new found free time getting more familiar with PHP, WordPress, JavaScript, CSS, and/or mySQL ... the more you learn of these the faster you will get things done.
- Update your plugin, theme, and child theme skeletons as you find things you should improve. No matter how good you are, if you keep learning you will find improvements to be made.
And, if you do all of the above, you will find that Chip's answer will then not only be ideal, it will become optimal.
-
- 2015-10-26
Dieeinfache Antwort lautet:
Ist der Code voneiner der Funktionen abhängig,diein einbestimmtes Themaintegriert sind?Wennja,geben Sieein Themaein.
Möchten Sie,dass dieser Code zwischen Websites und Themen übertragen werden kann?Wennja,dannfügen Sieein Pluginein.
Wenn die Antwort aufbeide obengenannten Fragen Nein lautet,stellen Sie sich die Site 5 Jahrein der Zukunft vor,wennes Zeitfüreine Neugestaltungist.Ist die Funktion des Codes,den Sie schreiben,etwas,das dasnächste Design-Update überlebt?Wennja,geben Sieein Pluginein.
Wenn Sie keine untergeordneten Themen verwenden und das Thema aktualisierenmöchten,würdeich Ihnen auchempfehlen,ein Plugin zu verwenden.
The simple answer is this..
Is the code dependent on any of the functionality built into a specific theme? If yes, then put in a theme.
Do you want this code to be transferable between sites and between themes? If yes, then put in a plugin.
If the answer is no to both of the above, then picture the site 5 years in the future, when it's time for a redesign. Is the function of the code you're writing something that will survive the next design update? If yes, put in a plugin.
Also, if you're not using child themes and you plan to update the theme, I would also suggest you use a plugin.
Gibtesein leicht verständliches Schema ,mit dem Sieentscheiden können,welche Art von Code zueinem Plugin oder zu den
functions.php
des Themasgehört?Esgibt many Fälle und viele Debatten zu diesem Thema,hauptsächlich,weileseinige Missverständnisse über das Innenleben von WordPressgibt. Ichbitte umeine Antwort,die auf Faktenbasiert,nicht auf Meinungen.
Es sollteerklärt werden,wiemit diesen Punkten (und wahrscheinlichmehr) umgegangen wird:
add_theme_support ('automatische Feed-Links');
Meta code> -Elemente
Fürbeide Seitengibt es oft Vor- und Nachteile. Unserebeliebteste Frage Beste Code-Sammlungfür Ihre Funktionen. PHP-Datei hat viele Code-Schnipsel als Antworten,die zumindest umstritten sind.
Wirbrauchen Kriterien,dieein Anfänger verstehen kann,vielleichteine Checkliste -mit Gründen.
Siehe auch die verwandte Frage von Chip Bennett auf unserer Meta-Site: Fragen speziellnacheiner Lösung" ohne Plugin "
Verwandte Themen: Wo legeich die Codefragmente ab,dieich hier oder anderswoim Webgefunden habe?