Inhaltsverzeichnis
Traditionelle WordPress -Websites
Kopflose WordPress -Website
Einführung in fast kopflosen WordPress
Wie es funktioniert
Trocken halten
Erkennen Sie, wann die Seite im kompatiblen Modus ausgeführt wird
Die Anwendung erweitern
Nächster Schritt
Heim Web-Frontend CSS-Tutorial So erstellen Sie eine fast kopflose WordPress -Website

So erstellen Sie eine fast kopflose WordPress -Website

Mar 18, 2025 am 10:29 AM

So erstellen Sie eine fast kopflose WordPress -Website

Herkömmliche WordPress -Themen können auch so effizient ausgeführt werden wie statische Websites oder kopflose Webanwendungen. Die überwiegende Mehrheit der WordPress -Websites wird mit herkömmlichen WordPress -Themen erstellt. Viele dieser Websites haben sogar gute Caching -Stufen und Abhängigkeitsoptimierungen, sodass sie ziemlich schnell laufen. Aber als Entwickler haben wir Wege gemeistert, um bessere Ergebnisse für unsere Websites zu erzielen. Durch die Verwendung kopfloser WordPress können viele Websites schnelleres Laden, eine bessere Benutzerinteraktion und nahtlose Übergänge zwischen den Seiten erreichen.

Das Problem ist: Wartung. Lassen Sie mich Ihnen eine andere Möglichkeit zeigen!

Lassen Sie uns zunächst definieren, was ich über "traditionelle" WordPress, "kopflos" WordPress und "fast kopflos" WordPress spreche.

Traditionelle WordPress -Websites

Traditionell verwenden WordPress -Websites PHP, um HTML -Tags auf Seiten zu rendern. Jedes Mal, wenn ein Link geklickt wird, sendet der Browser eine weitere Anfrage an den Server und rendert das HTML -Tag der geklickten Website.

Dies ist die Methode, die von den meisten Websites verwendet wird. Es ist am einfachsten zu warten, hat die niedrigste technische Komplexität und verwendet das richtige serverseitige Caching-Tool und funktioniert auch recht gut. Das Problem ist, dass es sich wie eine traditionelle Website anfühlt , da es sich um eine traditionelle Website handelt. In dieser Art von Website sind Übergänge, Effekte und andere stilvolle moderne Funktionen oft schwieriger zu erstellen und zu warten.

Vorteil:

  1. Die Website ist leicht zu warten.
  2. Die Technologie ist relativ einfach.
  3. Gute Kompatibilität mit WordPress -Plugins.

Mangel:

  1. Wie die Gesellschaft eine App-ähnliche Erfahrung im Browser erwartet, erscheint Ihre Website möglicherweise etwas veraltet.
  2. Da Websites JavaScript -Frameworks nicht zur Steuerung des Verhaltens von Websites verwenden, ist JavaScript oft schwieriger zu schreiben und zu warten.
  3. Traditionelle Websites laufen in der Regel langsamer als kopflose und fast kopflose Optionen.

Kopflose WordPress -Website

Headless WordPress-Websites verwenden modernes JavaScript und eine Art serverseitigem Ruhestand, wie z. B. WordPress Rest API oder GraphQL. Anstatt HTML in PHP zu erstellen und zu rendern, sendet der Server minimales HTML und eine große JavaScript -Datei, mit der die Rendern einer Seite auf der Website das Rendern einer Seite übernommen wird. Dieser Ansatz lädt die Seite schneller und bietet die Möglichkeit, wirklich coole Übergänge und andere lustige Funktionen zwischen Seiten zu erstellen.

Egal was Sie sagen, für die meisten kopflosen WordPress -Sites müssen ein Entwickler wichtige Änderungen vornehmen. Möchten Sie das Formular Plugin installieren? Entschuldigung, Sie benötigen möglicherweise einen Entwickler, um es einzurichten. Möchten Sie ein neues SEO -Plugin installieren? Nein, Entwickler müssen die Anwendung ändern. Möchten Sie diesen schicken Block verwenden? Schade - Sie brauchen zuerst einen Entwickler.

Vorteil:

  1. Die Website selbst wird sich modern und schnell anfühlen.
  2. Es ist einfach, sich in andere erholsame Dienste außerhalb von WordPress zu integrieren.
  3. Die gesamte Website ist in JavaScript integriert, wodurch es einfacher ist, komplexe Websites zu erstellen.

Mangel:

  1. Sie müssen die vielen Funktionen neu erfinden, die WordPress Plugin für Sie aus der Box bietet.
  2. Diese Einstellung ist schwer zu pflegen.
  3. Das Hosting ist komplex und kann im Vergleich zu anderen Optionen teuer sein.

"WordPress und Jamstack" finden Sie einen detaillierteren Vergleich der Unterschiede zwischen WordPress und Static Hosting.

Ich liebe die Ergebnisse , die kopflos WordPress erzeugen kann. Ich mag keine Wartung. Ich möchte eine Webanwendung, mit der ich eine schnelle Ladegeschwindigkeit, Übergänge zwischen Seiten und das allgemeine App-ähnliche Gefühl der Website haben kann. Ich möchte aber auch frei sein, das Plugin -Ökosystem zu verwenden, das WordPress so beliebt macht. Ich will etwas kopflos. Fast kopflos .

Ich konnte nichts finden, was zu dieser Beschreibung passt, also habe ich eines gebaut. Seitdem habe ich mehrere Websites erstellt, die diesen Ansatz verwenden und die erforderlichen JavaScript-Bibliotheken erstellt haben, um es anderen erleichtert, ihre eigenen nahezu headlosen WordPress-Themen zu erstellen.

Einführung in fast kopflosen WordPress

Fast Headless ist eine WordPress -Webentwicklungsmethode, die Ihnen viele der Vorteile ähnlicher Anwendungen bietet, die durch den kopflosen Ansatz sowie die Entwicklung herkömmlicher WordPress -Themen verwendet werden. Dies geschieht mit einer kleinen JavaScript -Anwendung, die das Routing behandelt und Ihre Website wie eine kopflose Anwendung rendert, jedoch einen Fallback -Mechanismus enthält, der genau die gleiche Seite mit normalen WordPress -Anfragen laden kann. Sie können auswählen, welche Seiten mithilfe der Fallback -Methode geladen werden sollen, und Sie können Logik in JavaScript oder PHP injizieren, um festzustellen, ob die Seite so geladen werden soll.

Sie können sehen, wie es tatsächlich auf der von mir erstellten Demo -Website funktioniert, was zeigt, was dieser Ansatz erreichen kann.

Eine Website, die diese Methode implementiert, verkauft beispielsweise WordPress -Kurse online über ein Lernmanagementsystem namens LifterLMS. Dieses Plugin verfügt über integrierte E-Commerce-Funktionen und verfügt über die erforderliche Schnittstelle, um Hosting-Kursinhalte einzurichten und eine Paywall zu stellen. Diese Website verwendet viele integrierte Funktionen von LifterLMs-ein großer Teil davon ist der Checkout-Wagen. Anstatt die gesamte Seite wieder aufzubauen, um in meiner Anwendung zu arbeiten, habe ich sie einfach mit der Fallback -Methode geladen. Diese Seite funktioniert also wie jedes alte WordPress -Thema und funktioniert daher genauso wie erwartet - alles ohne mich wieder aufzubauen.

Vorteil:

  1. Sobald dies eingerichtet ist, ist dies leicht zu warten.
  2. Hosting ist so einfach wie ein typisches WordPress -Thema.
  3. Die Website fühlt sich genauso modern und schnell an wie eine kopflose Website.

Mangel:

  1. Sie müssen immer zwei verschiedene Möglichkeiten berücksichtigen, Ihre Website zu rendern.
  2. Diese Methode enthält nur begrenzte Auswahlmöglichkeiten für effektive JavaScript -Bibliotheken.
  3. Diese Anwendung ist eng mit WordPress gebunden, daher ist die Verwendung einer REST-API von Drittanbietern schwieriger als kopflos.

Wie es funktioniert

Um fast kopflos zu sein, erfordert es die Fähigkeit, mehrere Aktionen auszuführen, darunter:

  1. Verwenden Sie die WordPress -Anforderung, um die Seite zu laden.
  2. Seiten mit JavaScript laden,
  3. Lassen Sie die Seiten gleich sein, egal wie sie rendern,
  4. Bietet eine Möglichkeit, zu wissen, wann eine Seite mit JavaScript oder PHP geladen werden soll, und
  5. Gewährleisten Sie eine 100% ige Konsistenz aller Routing -Seiten, unabhängig davon, ob sie in JavaScript oder PHP gerendert werden.

Auf diese Weise kann die Website die progressive Verbesserung nutzen. Da die Seite mit oder ohne JavaScript angezeigt werden kann, können Sie die am besten geeignete Version basierend auf den von Ihnen gestellten Anforderungen verwenden. Gibt es einen vertrauenswürdigen Bot, der Ihre Website kriecht? Senden Sie ihnen eine Nicht-JavaScript-Version, um die Kompatibilität sicherzustellen. Funktioniert eine Kasse nicht wie erwartet? Erzwingen Sie es vorübergehend, ohne Anwendung zu laden und später zu beheben.

Um diese Projekte abzuschließen, habe ich eine Open -Source -Bibliothek namens Nicholas veröffentlicht, die eine vorgefertigte Kesselplatte enthält.

Trocken halten

Das größte Problem, das ich beim Erstellen einer nahezu headlosen Anwendung überwinden möchte, ist, die Seite zu halten, die in PHP und JavaScript konsistent ist. Ich möchte mein Markup nicht an zwei verschiedenen Orten erstellen und pflegen - ich möchte so viel einzelner Quellcode wie möglich verwenden. Dies schränkt sofort die JavaScript -Bibliothek ein, die ich tatsächlich verwenden kann (sorry, reagieren!). Nach einigen Nachforschungen und vielen Experimenten habe ich Alpinejs verwendet. Diese Bibliothek hält meinen Code trocken plausibel. Einige Teile müssen für jeden Teil unbedingt umschreiben (z. B. Schleifen), aber die wichtigsten Markup -Blöcke können wiederverwendet werden.

Eine einzelne Postvorlage, die mit PHP wiedergegeben wird, könnte so aussehen:

 <code><?php if ( have_posts() ) { while ( have_posts() ) { the_post(); if ( is_singular() ) { echo nicholas()-?>templates()->get_template( 'index', 'post', [ 'content' => Nicholas::get_buffer( 'the_content' ), 'title' => Nicholas::get_buffer( 'the_title' ), ] ); } } } ?></code>
Nach dem Login kopieren

Die gleiche Post -Vorlage, die mit dem JavaScript von Alpine gerendert wurde:

<code><template :key="index" x-for="(post, index) in $store.posts"> = niccholas ()-> templates ()-> get_template ('index', 'post')?>
</template></code>
Nach dem Login kopieren

Sie alle verwenden dieselbe PHP -Vorlage, sodass der gesamte Code in der tatsächlichen Schleife trocken ist:

 <code>$title = $template->get_param( 'title', '' ); // 获取传递到此模板的标题,回退到空字符串。 $content = $template->get_param( 'content', '' ); // 获取传递到此模板的内容,回退到空字符串。 ?></code> = $ title?>

  <div x-html="content">= $ Inhalt?></div>
Nach dem Login kopieren

Verwandte: Diese Alpine.js -Methode ähnelt mental der von Jonathan Land eingeführten VUE.JS -Methode in "Wie man Vue -Komponenten im WordPress -Thema baut".

Erkennen Sie, wann die Seite im kompatiblen Modus ausgeführt wird

Mit dem Kompatibilitätsmodus können Sie jede Anforderung zum Laden erzwingen, ohne eine kopflose Version von JavaScript auf Ihrer Website auszuführen. Wenn die Seite im Kompatibilitätsmodus geladen wird, lädt die Seite nur in PHP und die Anwendungsskripte werden niemals in der Warteschlange gestellt. Auf diese Weise können die "Fragenseiten" ausgeführt werden, ohne etwas umzuschreiben, das bei Verwendung der App nicht wie erwartet funktioniert.

Es gibt eine Reihe verschiedener Möglichkeiten, wie Sie die Seite zum Ausführen im kompatiblen Modus zwingen können - einige benötigen Code und einige nicht. Nicholas fügt zu jedem Post -Typ einen Toggle -Switch hinzu, der die Posts zum Laden des Kompatibilitätsmodus zwingt.

Abgesehen davon können Sie jede URL manuell hinzufügen, um sie zum Laden des kompatiblen Modus in Nicholas -Einstellungen zu zwingen.

Dies ist ein guter Start, aber ich habe festgestellt, dass ich normalerweise automatisch erkennen kann, wann die Seite im Kompatibilitätsmodus basierend auf den im Post gespeicherten Blöcken geladen werden muss. Angenommen, Sie haben Ninja -Formulare auf Ihrer Website installiert und möchten das von ihnen bereitgestellte Validierung JavaScript verwenden, anstatt Ihr eigenes JavaScript nachzubilden. In diesem Fall müssen Sie den Kompatibilitätsmodus auf jeder Seite mit Ninja -Form erzwingen. Sie können jede URL nacheinander manuell hinzufügen oder eine Abfrage verwenden, um alles mit einem Ninja -Formulierungsblock auf die Seite zu bringen. Zum Beispiel:

 <code>add_filter( 'nicholas/compatibility_mode_urls', function ( $urls ) { // 过滤Ninja Forms块$filtered_urls = Nicholas::get_urls_for_query( [ 'post_type' => 'any', 's' => 'wp:ninja-forms/form', // 查找Ninja Forms块] ); return array_merge( $urls, $filtered_urls ); } );</code>
Nach dem Login kopieren

Dies fügt automatisch jede Seite hinzu, die den Ninja -Formulare Block enthält, zu der Liste der URLs, die im Kompatibilitätsmodus geladen werden. Dies verwendet nur den Parameter WP_Query, sodass Sie hier alles übergeben können, um festzustellen, was zur Liste hinzugefügt werden soll.

Die Anwendung erweitern

Hinter den Kulissen verwendet Nicholas einen leichten Router, der über den Middleware -Modus erweitert werden kann, genau wie die Art und Weise, wie Expressanwendungen Middleware verarbeiten. Wenn die Klickseite geleitet wird, wird das System jedes Middleware -Element ausführen und schließlich die Seite weiterleiten. Standardmäßig tut der Router nichts .

Ein grundlegendes Beispiel ist wie folgt:

 <code>// 导入WordPress特定的中间件import { updateAdminBar, validateAdminPage, validateCompatibilityMode } from 'nicholas-wp/middlewares' // 导入通用中间件import { addRouteActions, handleClickMiddleware, setupRouter, validateMiddleware } from "nicholas-router"; // 按此顺序执行这些操作,当页面被路由时。 addRouteActions( // 首先,验证URL validateMiddleware, // 验证此页面不是管理页面validateAdminPage, // 验证此页面不需要兼容模式validateCompatibilityMode, // 然后,我们更新Alpine存储updateStore, // 如果启用,则可能获取评论fetchComments, // 更新历史记录updateHistory, // 可能更新管理栏updateAdminBar ) // 设置路由器。这也使用中间件模式。 setupRouter( // 为点击设置事件监听器handleClickMiddleware )</code>
Nach dem Login kopieren

Von hier aus können Sie erweitern, was passiert, wenn Sie die Seite weiterleiten. Vielleicht möchten Sie die Seite scannen, um den Code hervorzuheben, oder Sie möchten sie ändern Der Inhalt des Tags soll der Seite der neuen Route übereinstimmen. Sogar eine Cache -Ebene kann eingeführt werden. Was auch immer Sie tun müssen, fügen Sie die erforderlichen Aktionen einfach mit AddrouteAction oder SetUprouter hinzu.

Nächster Schritt

Hier ist mein kurzer Überblick über einige der Schlüsselkomponenten, die zur Implementierung eines nahezu headlosen Ansatzes verwendet werden. Wenn Sie daran interessiert sind, mehr kennenzulernen, empfehle ich, meinen Kurs an der WP Dev Academy zu belegen. Dieser Kurs ist eine Schritt-für-Schritt-Anleitung, wie man eine nahezu kopflose WordPress-Website mit modernen Tools erstellt. Ich empfehle auch, meine nahezu headlose Boilerplate zu überprüfen, mit der Sie Ihr eigenes Projekt beginnen können.

Das obige ist der detaillierte Inhalt vonSo erstellen Sie eine fast kopflose WordPress -Website. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

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

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Vue 3 Vue 3 Apr 02, 2025 pm 06:32 PM

Es ist aus! Herzlichen Glückwunsch an das Vue -Team, dass es eine massive Anstrengung war und lange kommt. Alle neuen Dokumente auch.

Ein bisschen auf CI/CD Ein bisschen auf CI/CD Apr 02, 2025 pm 06:21 PM

Ich sage "Website" passt besser als "Mobile App", aber ich mag dieses Rahmen von Max Lynch:

Können Sie gültige CSS -Eigenschaftswerte aus dem Browser erhalten? Können Sie gültige CSS -Eigenschaftswerte aus dem Browser erhalten? Apr 02, 2025 pm 06:17 PM

Ich ließ jemanden mit dieser sehr legitimen Frage einschreiben. Lea hat gerade darüber gebloggt, wie Sie gültige CSS -Eigenschaften selbst aus dem Browser erhalten können. Das ist so.

Verwenden von Markdown und Lokalisierung im WordPress -Block -Editor Verwenden von Markdown und Lokalisierung im WordPress -Block -Editor Apr 02, 2025 am 04:27 AM

Wenn wir dem Benutzer direkt im WordPress -Editor Dokumentation anzeigen müssen, wie können Sie dies am besten tun?

Gestapelte Karten mit klebriger Positionierung und einem Schuss Sass Gestapelte Karten mit klebriger Positionierung und einem Schuss Sass Apr 03, 2025 am 10:30 AM

Neulich habe ich dieses besonders schöne Stück von der Website von Corey Ginnivan entdeckt, auf der eine Sammlung von Karten aufeinander stapelt.

Vergleich von Browsern für reaktionsschnelles Design Vergleich von Browsern für reaktionsschnelles Design Apr 02, 2025 pm 06:25 PM

Es gibt eine Reihe dieser Desktop -Apps, in denen das Ziel Ihre Website gleichzeitig in verschiedenen Dimensionen angezeigt wird. So können Sie zum Beispiel schreiben

So verwenden Sie CSS -Gitter für klebrige Header und Fußzeilen So verwenden Sie CSS -Gitter für klebrige Header und Fußzeilen Apr 02, 2025 pm 06:29 PM

CSS Grid ist eine Sammlung von Eigenschaften, die das Layout einfacher machen als jemals zuvor. Wie alles andere ist es eine kleine Lernkurve, aber das Gitter ist

Google -Schriftarten variable Schriftarten Google -Schriftarten variable Schriftarten Apr 09, 2025 am 10:42 AM

Ich sehe, dass Google -Schriftarten ein neues Design (Tweet) ausgelöst haben. Im Vergleich zur letzten großen Neugestaltung fühlt sich dies viel iterativer an. Ich kann den Unterschied kaum erkennen

See all articles