


Schauen Sie sich zuerst Themose an, einen Rahmen für WordPress -Entwickler
Feb 19, 2025 am 11:13 AMThemose: Ein moderner Ansatz zur WordPress -Entwicklung
Meine Verachtung für WordPress's Tangled Codebase ist bekannt. Ich empfehle von seiner Verwendung, es sei denn, Sie sind technisch kompetent. Meine Kritik beruht jedoch auf den Wunsch nach Verbesserung - eine Hoffnung, dass eine überlegene Alternative auftauchen wird und einen logischeren und effizienteren Entwicklungsprozess bietet. Jeder Versuch, WordPress zu optimieren, ist meiner Ansicht nach ein positiver Schritt.
Vor kurzem tauchte ein Projekt namens Thesise auf und wurde als "Rahmen für WordPress -Entwickler" in Rechnung gestellt. Dieser Artikel untersucht die Themense, ihre Verwendung und untersucht sein Beispielprojekt - eine Buchhandelsanwendung.
Schlüsselhighlights:
- Themose ist ein neuartiges Projekt, das als Rahmen für WordPress -Entwickler ausgelegt ist, das die Entwicklung vereinfachen und der chaotischen Plugin -Architektur von WordPress Struktur auferlegt.
- Im Gegensatz zu herk?mmlichen Rahmenbedingungen fungiert die Themen als API, die sich in WordPress integriert, um die Entwicklung zu verbessern. Es erm?glicht Entwicklern, WordPress -Komponenten mit modernen PHP -Funktionen (Namespaces, Klassen, anonymen Funktionen) und Komponisten zu erstellen. Die Installation der
- -TheSose basiert auf Composer und dem WordPress-Befehlszeilen-Tool. Der Komponist erstellt ein Themoseprojekt, das automatisch die neueste WordPress -Version enth?lt. Ein Standard -WordPress -Installationsskript vervollst?ndigt das Setup. Die
- -Themen stammt noch in den frühen Stadien (Version 1.0 ausstehend). Trotz seiner Jugend ist es vielversprechend, bessere Designpraktiken innerhalb des PHP -?kosystems zu f?rdern, selbst innerhalb der Einschr?nkungen des Kerns von WordPress.
Verst?ndnis der Themen
Der Begriff "Framework" k?nnte für PHP -Entwickler irreführend sein. WordPress enth?lt bereits zahlreiche unn?tige Komponenten. Frameworks halten sich in der Regel an minimalistische Prinzipien und entkoppelte Komponenten, wobei komplexe Anwendungen aufgebaut sind - nicht umgekehrt.
Themose ist kein Rahmen im traditionellen Sinne. Es ist eine API, die sich in WordPress integriert, um die Entwicklung zu vereinfachen, aber nicht unbedingt ihre Gr??e verringert. Die Theme bietet APIs zum Erstellen von WordPress -Komponenten mit modernen PHP, einschlie?lich Namespaces, Klassen, anonymen Funktionen und Komponistenunterstützung.
Im Wesentlichen ist die Themenosis ein mit MVC betriebenes, von LaVavel inspiriertes WordPress-Plugin, das zum Erstellen anderer Plugins verwendet wird. Es enth?lt eine eigene Router (Laravel-Route-Definition) und eine Templating-Engine (Scout), ?hnlich wie Laravel und Phalcon, mit zus?tzlicher WordPress-Unterstützung. Zum Beispiel die Vorlagenschleife:
@loop(array('post_type' => 'post', 'posts_per_page' => -1)) <h1>{{ Loop::title() }}</h1> <div> {{ Loop::content() }} </div> @endloop
verwendet die WordPress -API für das Abrufen von Daten, und die Loop
-Kl?ufe wurde speziell für WordPress -Inhaltsschleifen entwickelt.
Installation
Die Installation vonDie Installation von Komponisten und WordPress-Befehlszeilen umfasst. Das Erstellen eines Themoseprojekts mit Composer enth?lt automatisch die neueste WordPress -Version. Ein Standard -WordPress -Installationsskript schlie?t das Setup ab. Siehe die offiziellen Installationsanweisungen oder experimentieren Sie zuerst mit dem Beispielprojekt (siehe unten).
Beispielprojekt: Die Bookstore -App
Themose liefert ein Beispiel für Buchhandlungsanwendungen.
Testen Sie die Buchhandlungs -App
Um es zu testen, k?nnen Sie Homestead verbessert verwenden. Registrieren Sie eine neue Website mit:
@loop(array('post_type' => 'post', 'posts_per_page' => -1)) <h1>{{ Loop::title() }}</h1> <div> {{ Loop::content() }} </div> @endloop
Denken Sie daran, die bookstore.local
-Datei Ihres Hosts /etc/hosts
hinzuzufügen (gem?? dem Geh?ft verbesserte Anweisungen).
klonen Sie das Repository (git clone http://ipnx.cn/link/7101e4daaff4511510bbd4e6a0862fb7 themosis_example
) und greifen Sie auf die Installationsverfahren unter http://bookstore.local:8000
zu. Befolgen Sie die Anweisungen. Dieses Setup erm?glicht das Experimentieren ohne Risiko - stellt die VM einfach um, um ?nderungen zurückzuversetzen.
W?hrend das anf?ngliche Erscheinungsbild nicht bahnbrechend ist (jede WordPress -Site kann ?hnlich konfiguriert werden), stechen zwei wichtige Beobachtungen heraus:
- Setup war bemerkenswert schnell und unkompliziert.
- Die Leistung war überraschend schnell, da die zus?tzlichen Schichten von Denose auf die WordPress -API zugreifen.
Codeprüfung
Der Code des Buchhandels befindet sich auf GitHub: http://ipnx.cn/link/7101e4daaff4511510bbd4e6a0862fb7 . Da die Themen ein Plugin ist, befindet sich der Code des Buchhandels in seinem Plugin -Verzeichnis:
Drei Hauptunterordner existieren: app
(mit Themse betriebene WordPress-Logik), src
(Themenosis-Quellcode-Aufhebung anderer Frameworks) und vendor
(Komponistenabh?ngigkeiten).
W?hrend der Code moderne Praktiken (Namespaces, Klassen, umfassende Dokumentation) enth?lt, verbleiben kleinere veraltete Elemente (z. B. <?php defined('DS') or die('No direct script access.');
, Schlie?ung von PHP -Tags).
Die Themencode wird an zwei Stellen verteilt: Routing und Pr?sentation befinden sich im Thema, w?hrend die Anwendungslogik im Plugin -Ordner liegt.
MVC -Struktur
Die MVC-Struktur ist gut definiert, obwohl die Fragmentierung über zwei übergeordnete Ordner verbessert werden kann. Der routes
-Fordner (?hnlich wie Laravel) verwendet eine vergleichbare Syntax. Controller werden von Ansichten getrennt und Modelle werden von Controllern verwendet, wodurch Daten an Ansichten weitergegeben werden. Ein Beispiel aus home.controller.php
:
@loop(array('post_type' => 'post', 'posts_per_page' => -1)) <h1>{{ Loop::title() }}</h1> <div> {{ Loop::content() }} </div> @endloop
Ansichten Verwenden Sie eine Punktnotation für TRAversal (z. B. pages.home
Karten zu app/views/pages/home.scout.php
).
Routing mit Parametern
Routing ist einfach. Die Suchseite verwendet beispielsweise direkt die Suchfunktionalit?t von WordPress:
- map: bookstore.local to: /home/vagrant/Code/themosis_exampleDieser Ansatz abstrakt
Erstellen einer benutzerdefinierten Seite
Erstellen wir eine benutzerdefinierte Seite mit einem Controller und einer Ansicht.
fügen Sie eine Route zu
- :
- hinzu
routes.php
return View::make('pages.home')->with(array( 'promo' => Books::getPromoBook($this->page), 'books' => Books::getPopularBooks($this->bookId), 'news' => News::get(), 'newspage' => get_page_by_path('news') ));erstellen
- :
-
pages/test.scout.php
// Search page Route::is('search', function(){ return View::make('search', array('search' => $_GET['s'])); });einen Controller hinzufügen (
- ):
-
controllers/Test_Controller.php
Route::only('page', 'test', 'test@index');rendern. Da die Themen jedoch auf WordPress abh?ngt, müssen wir die Seite zum System hinzufügen.
/test
Die Nachricht "Hello World" macht nach dem Nachladen.
Um den Seiteninhalt einzuschlie?en, müssen wir auf die globale
$post
?ndern des Controllers:
und die Ansicht:
@include('header') Hello World @include('footer')
rendert die Seite richtig.
<?php class Test_Controller{ public function index(){ return View::make('pages.test'); } }
W?hrend die leistungsstarken Wrapper zum Rendern von WordPress -Inhalten Struktur und Klarheit und Verbesserung der Steifigkeit von WordPress.
Schlussfolgerung
Themose bietet eine Laravel-?hnliche Erfahrung für die Entwicklung von WordPress-Plugin. Es führt die dringend ben?tigte Struktur und Kapselung in die Plugin-Architektur von WordPress ein.
Obwohl noch in den frühen Stadien (Version 0.8), ist sie ein vielversprechendes Projekt. Die Einführung guter Designpraktiken ist für die PHP -Community von entscheidender Bedeutung, und die Themensiose bietet einen wertvollen Beitrag, selbst innerhalb der Grenzen des Kerns von WordPress.
(Der h?ufig gestellte Fragen wurde aufgrund von L?ngenbeschr?nkungen weggelassen, kann jedoch leicht umgezogen und ?hnlich wie der Rest des Textes aufgenommen werden.)
Das obige ist der detaillierte Inhalt vonSchauen Sie sich zuerst Themose an, einen Rahmen für WordPress -Entwickler. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Die Hauptgründe, warum WordPress den Anstieg der Server-CPU-Nutzung hervorruft, umfassen Plug-in-Probleme, Ineffiziente Datenbankabfrage, schlechte Qualit?t des Themencodes oder Anstieg des Datenverkehrs. 1. Best?tigen Sie zun?chst, ob es sich um eine hohe Belastung handelt, die durch WordPress über Oben-, HTOP- oder Bedienfeld -Tools verursacht wird. 2. Geben Sie den Fehlerbehebungsmodus ein, um die Plug-Ins nach und nach zu erm?glichen, Leistungs Engp?sse zu beheben, mit QueryMonitor die Plug-in-Ausführung zu analysieren und ineffiziente Plug-Ins zu l?schen oder zu ersetzen. 3. Installieren Sie Cache-Plug-Ins, r?umen Sie redundante Daten auf, analysieren Sie langsame Abfrageprotokolle, um die Datenbank zu optimieren. 4. überprüfen Sie, ob das Thema Probleme wie überladungsinhalte, komplexe Abfragen oder mangelnde Caching -Mechanismen aufweist. Es wird empfohlen, Standard -Thementests zu verwenden, um die Codelogik zu vergleichen und zu optimieren. Befolgen Sie die obigen Schritte, um den Ort zu überprüfen und zu l?sen und das Problem nacheinander zu l?sen.

Miniving JavaScript -Dateien k?nnen die Ladegeschwindigkeit der WordPress -Website verbessern, indem sie Rohlinge, Kommentare und nutzlose Code entfernen. 1. Verwenden Sie Cache-Plug-Ins, die die Zusammenführungskomprimierung wie W3totalcache unterstützen, den Komprimierungsmodus in der Option "Minify" aktivieren und ausw?hlen. 2. Verwenden Sie ein dediziertes Komprimierungs-Plug-In wie FastVerocityMinify, um eine st?rkere Kontrolle zu erhalten. 3. Die JS -Dateien manuell komprimieren und über FTP hochladen, geeignet für Benutzer, die mit Entwicklungstools vertraut sind. Beachten Sie, dass einige Themen oder Plug-in-Skripte mit der Komprimierungsfunktion in Konflikt stehen und die Website-Funktionen nach der Aktivierung gründlich testen müssen.

Methoden zur Optimierung von WordPress-Sites, die nicht auf Plug-Ins angewiesen sind, umfassen: 1. Leichte Themen wie Astra oder Generatedress verwenden, um Stapelthemen zu vermeiden; 2.. 3. Optimieren Sie die Bilder vor dem Hochladen, verwenden Sie das WebP -Format und die Steuerung der Datei. 4. Konfigurieren.htaccess, um den Browser -Cache zu aktivieren, und eine Verbindung zu CDN herstellen, um die statische Ladegeschwindigkeit zu verbessern. 5. Artikelüberarbeitung einschr?nken und redundante Datenbankdaten regelm??ig reinigen.

Transientsapi ist ein integriertes Tool in WordPress, um automatische Ablaufdaten vorübergehend zu speichern. Die Kernfunktionen sind set_transient, get_transient und delete_transient. Im Vergleich zu OptionsAPI unterstützt Transienten die Festlegung der überlebenszeit (TTL), die für Szenarien wie Cache -API -Anforderungsergebnisse und komplexe Computerdaten geeignet ist. Wenn Sie es verwenden, müssen Sie auf die Einzigartigkeit des wichtigsten Namens und des Namespace, des Mechanismus "Lazy Deletion" und des Problems, das m?glicherweise nicht in der Umgebung von Objekt -Cache dauert, auf die Einzigartigkeit achten. Typische Anwendungsszenarien umfassen die Reduzierung der externen Anforderungsfrequenz, die Steuerung des Codeausführungsrhythmus und die Verbesserung der Ladenleistung der Seite.

Der effektivste Weg, um Kommentare zu verhindern, besteht darin, ihn automatisch mit programmatischen Mitteln zu identifizieren und abzufangen. 1. Verwenden Sie Verifizierungscode -Mechanismen (wie Googler captcha oder hcaptcha), um effektiv zwischen Menschen und Robotern zu unterscheiden, insbesondere für ?ffentliche Websites. 2. Setzen Sie versteckte Felder (Honeypot -Technologie) und verwenden Sie Roboter, um Funktionen automatisch auszufüllen, um Spam -Kommentare zu identifizieren, ohne die Benutzererfahrung zu beeintr?chtigen. 3.. überprüfen Sie die schwarze Liste der Keywords in den Kommentaren inhaltlich, filtern Sie Spam -Informationen durch sensible Word -übereinstimmung und achten Sie darauf, dass Fehleinsch?tzungen vermieden werden. V. 5. Verwenden Sie Anti-Spam-Dienste von Drittanbietern (wie Akismet, Cloudflare), um die Identifizierungsgenauigkeit zu verbessern. Kann auf der Website basieren

Bei der Entwicklung von Gutenberg -Bl?cken umfasst die richtige Methode der Enqueue -Verm?genswerte: 1. Verwenden Sie Register_Block_Type, um die Pfade von editor_script, editor_style und style anzugeben; 2. Registrieren Sie die Ressourcen über wp_register_script und wp_register_style in functions.php oder plug-In und setzen Sie die richtigen Abh?ngigkeiten und Versionen. 3. Konfigurieren Sie das Build -Tool, um das entsprechende Modulformat auszugeben, und stellen Sie sicher, dass der Pfad konsistent ist. 4. Steuern Sie die Ladelogik des Front-End-Stils über add_theme_support oder enqueue_block_assets, um sicherzustellen, dass die Ladelogik des Front-End-Stils sichergestellt wird.

Um benutzerdefinierte Benutzerfelder hinzuzufügen, müssen Sie die Erweiterungsmethode entsprechend der Plattform ausw?hlen und auf die Datenüberprüfung und die Berechtigungssteuerung achten. Zu den allgemeinen Praktiken geh?ren: 1. verwenden zus?tzliche Tabellen oder Schlüsselwertpaare der Datenbank, um Informationen zu speichern; 2. Fügen Sie Eingangsk?sten am vorderen Ende hinzu und integrieren Sie sie in das hintere Ende. 3.. Formatprüfungen und Zugriffsberechtigungen für sensible Daten einschr?nken; 4. Aktualisieren Sie Schnittstellen und Vorlagen, um die Anzeige und Bearbeitung des neuen Feldes zu unterstützen, w?hrend die mobile Anpassung und die Benutzererfahrung berücksichtigt werden.

Robots.txt ist für die SEO von WordPress -Websites von entscheidender Bedeutung und kann Suchmaschinen zum Kriechenverhalten leiten, doppelte Inhalte vermeiden und die Effizienz verbessern. 1. Blocksystempfade wie /wp-admin /und /wp-includes /, aber vermeiden Sie versehentlich das Blockieren des /Uploads /das Verzeichnis; 2. Fügen Sie Sitemap -Pfade wie Sitemap hinzu: https://yourdomain.com/sitemap.xml, um Suchmaschinen schnell zu entdecken. 3. Limit / Page / und URLs mit Parametern zur Reduzierung von Crawler -Abf?llen, aber achten Sie darauf, wichtige Archivseiten nicht zu blockieren. 4. Vermeiden Sie h?ufige Fehler, wie z. B. die versehentlicher Blockierung der gesamten Site, das Cache-Plug-In, das die Aktualisierungen beeinflusst, und das Ignorieren der Anpassung mobiler Terminals und Subdom?nen.
