Wordpress

So deaktivieren Sie das Laden von WordPress-Plugins auf bestimmten Seiten und Beiträgen

Wenn es um die Leistung von WordPress geht, haben wir viel über Plugins zu sagen. Jedes Plugin fügt PHP-Code hinzu, der ausgeführt werden muss, enthält normalerweise Skripte und Stile und kann sogar zusätzliche Abfragen gegen die Datenbank ausführen. Dies bedeutet, dass unnötige Plugins die Seitengeschwindigkeit beeinträchtigen und sich negativ auf die Benutzererfahrung und Ihr Seitenranking auswirken können.

Betrachten Sie als Beispiel ein Plugin, das benutzerdefinierte Formulare erstellt und auf Titelseiten anzeigt, wie z Shortcode des Plugins. Aus diesem Grund lädt Contact Form 7 auf jeder Seite Ihrer Website Skripte und Stile.

Aber möchten Sie wirklich den Plugin-Code ausführen und Skripte und Stile einbinden? auf jeder Seite Ihrer WordPress-Website?

In diesem Beitrag zeige ich Ihnen, wie Sie verhindern können, dass unnötige Plugins auf bestimmten Beiträgen/Seiten geladen werden, sodass Sie zusätzliche Plugins installieren können (natürlich nicht verrückt werden) und Ihre WordPress-Website trotzdem schnell laden können. Um diese Aufgabe zu erfüllen, werden wir WordPress-Plugins programmgesteuert auf bestimmten Beiträgen und Seiten deaktivieren. Dies ist ein vierstufiger Prozess:

  • Wählen Sie die beliebtesten Plugins aus, die Ihren Anforderungen entsprechen, und vergleichen Sie deren Funktionen und Auswirkungen auf die Seitengeschwindigkeit.
  • Listen und filtern Sie Plugins programmatisch, bevor die Seite geladen wird.
  • Programmgesteuert filtern und deaktivieren Sie unnötige Plugins mit einem Mu-Plugin.
  • Filtern und deaktivieren Sie unnötige Plugins mithilfe eines Plugins.
  • Verfolgen Sie die Site-Performance.

Tauchen wir tief ein.

Das selektive Deaktivieren von WordPress-Plugins für das Laden auf bestimmten Seiten/Beiträgen/Site-weit kann helfen, Ihre Site zu beschleunigen! 🚀.Klicken Sie, um Tweet

Drei allgemeine Regeln, die Sie bei der Auswahl eines Plugins beachten sollten

Die folgenden allgemeinen Regeln können bei der Auswahl eines Plugins hilfreich sein:

  • Installieren Sie nur gut codierte Plugins von vertrauenswürdigen Entwicklern: Berücksichtigen Sie aktive Installationen, Benutzerbewertungen, Client-Support, Aktualisierungshäufigkeit und alle nützlichen Informationen aus der WordPress-Community.
  • Bevorzugen Sie skalierbare Plugins: Vergleichen Sie ähnliche Plugins in Bezug auf die Leistung und verwenden Sie Browser-Entwicklungstools und/oder Online-Dienste wie Google Pagespeed Insights, Pingdom und GTmetrix, um die Auswirkungen jedes Plugins auf die Seitenladezeit zu bewerten.
  • Installieren Sie keine unnötigen Plugins: Es sollte offensichtlich sein, aber es ist erwähnenswert, dass Sie aus Sicherheits- und Leistungsgründen niemals ein Plugin installieren sollten, das Sie nicht wirklich benötigen. Stellen Sie außerdem sicher, dass Sie Ihre Plugins von Zeit zu Zeit überprüfen und diejenigen deinstallieren, die Sie nicht mehr benötigen und verwenden.
Reputation des WordPress-Repositorys
Das WordPress-Plugin-Verzeichnis bietet relevante Informationen, die wir bei der Auswahl eines Plugins immer berücksichtigen sollten

Ein Beispiel aus dem wirklichen Leben

Contact Form 7 ist ein großartiges Plugin, das Formulare in WordPress erstellt und anzeigt. Es ist ein perfektes Beispiel für unsere Zwecke, da es auf jeder Seite die folgenden Dateien enthält, auch wenn die Seite kein Formular enthält:

  • style.css
  • scripts.js
Chrome DevTools-Netzwerkbedienfeld
Das Chrome DevTools-Netzwerkbedienfeld bietet detaillierte Informationen zu Netzwerkanfragen, die beim Laden einer Seite gestellt werden

Ein Plugin kann Ihre Website verlangsamen, aber wir können WordPress zwingen, Plugins je nach Anforderungs-URL selektiv zu deaktivieren. Wenn Sie ein Entwickler sind, lesen Sie den nächsten Abschnitt, in dem wir lernen, wie Sie Plugins programmatisch verwalten und ein Mu-Plugin erstellen, das unnötige Plugins filtert. Wenn Sie kein Entwickler sind, können Sie gerne zum Abschnitt für Plugins springen, die es ermöglichen, Plugins zu filtern und zu organisieren.

So erhalten Sie eine Liste aller aktiven Plugins programmgesteuert

Zunächst können Sie mit einem einfachen PHP-Code-Schnipsel eine Liste aller aktiven Plugins auf Ihrer WordPress-Website abrufen. Sie können den folgenden Code entweder in einem benutzerdefinierten Plugin oder im Editor eines kostenlosen WordPress-Plugins wie Code Snippets hinzufügen. Wenn Sie sich für Ihr benutzerdefiniertes Plugin entscheiden, vergessen Sie nicht, den Plugin-Header wie unten gezeigt hinzuzufügen.

Aktive WordPress-Plugins
Aktive Plugins in der wp_options-Tabelle

Jedes aktive Plugin wird gespeichert in wp_options Tisch wo options_name is active_plugins. So können wir die Liste dieser Plugins mit einem einfachen extrahieren get_option Anruf. Hier ist der Code:

 0 ){
		$plugins = "
    "; foreach ( $active_plugins as $plugin ) { $plugins .= "
  • " . $plugin . "
  • "; } $plugins .= "
"; } return $plugins; });

Ändere die Plugin-Details und speichere dann die active-plugins.php Datei und lade sie auf deine /wp-content/plugins/ Mappe. Erstellen Sie einen neuen Blogbeitrag und fügen Sie die [activeplugins] Kurzcode. Es sollte jetzt eine Liste aller aktiven Plugins anzeigen.

Aktive Plugin-Liste
Die Liste der aktiven Plugins zeigt den Ordner und den Namen jedes Plugins

Wenn dies erledigt ist, können wir einen Schritt weiter gehen und Plugins programmgesteuert hinzufügen oder entfernen, indem wir die Vorteile nutzen option_active_plugins Filter. Dieser Filter gehört zur Gruppe option_$option_name von Filtern, die es ermöglichen, jede Option zu filtern, nachdem sie aus der Datenbank abgerufen wurde. Da alle aktiven Plugins gespeichert sind in wp_options Tisch wo option_value is active_plugins, die option_active_plugins filter bietet eine Möglichkeit, Plugins programmgesteuert zu aktivieren oder zu deaktivieren.

So können wir ein Plugin programmgesteuert aktivieren. Nehmen wir als Beispiel an, Sie möchten das ACF-Plugin aktivieren. Hier ist der Code:

add_filter( 'option_active_plugins', function( $plugins ){

	$myplugin = "advanced-custom-fields/acf.php";

	if( !in_array( $myplugin, $plugins ) ){
		$plugins[] = $myplugin;
	}

	return $plugins;

} );

In diesem Beispiel gehen wir davon aus, dass das Plugin installiert und noch nicht aktiviert wurde.

Der obige Code fügt das Plugin einfach der Liste der aktiven Plugins auf jeder Seite unserer Website hinzu. Nicht sehr nützlich, aber Sie bekommen den Punkt.

Außerdem sollte das Plugin vor allen anderen Plugins geladen werden, sonst könnte unser Code nicht wie erwartet funktionieren. Um unsere Plugin-Last zu priorisieren, müssen wir unser Skript in einem Must-Use-Plugin hinzufügen.

So erstellen Sie ein unverzichtbares Plugin zum programmgesteuerten Deaktivieren von Plugins

Wir werden ein Must-Use-Plugin erstellen, das sich in einem bestimmten Plugin befindet /wp-content Unterordner und wird vor jedem regulären Plugin ausgeführt.

Leider dürfen wir in dieser Situation keine Bedingungs-Tags verwenden, weil Bedingte Abfrage-Tags funktionieren nicht, bevor die Abfrage ausgeführt wird. Vorher geben sie immer false zurück. Wir müssen unsere Bedingungen also anderweitig überprüfen, z. B. indem wir den Request-URI parsen und den entsprechenden URL-Pfad überprüfen.

Fügen Sie den folgenden Code zu der active-plugins.php Datei und verschieben Sie sie dann nach /wp-content/mu-plugins:

$request_uri = parse_url( $_SERVER['REQUEST_URI'], PHP_URL_PATH );

$is_admin = strpos( $request_uri, '/wp-admin/' );

if( false === $is_admin ){
	add_filter( 'option_active_plugins', function( $plugins ){

		global $request_uri;

		$is_contact_page = strpos( $request_uri, '/contact/' );

		$myplugin = "contact-form-7/wp-contact-form-7.php";

		$k = array_search( $myplugin, $plugins );

		if( false !== $k && false === $is_contact_page ){
			unset( $plugins[$k] );
		}

		return $plugins;

	} );
}

Lassen Sie uns in diesen Code eintauchen:

  • parse_url gibt den Pfad der angeforderten URL zurück.
  • strpos findet die Position des ersten Auftretens von '/wp-admin/', und kehrt zurück false wenn die Zeichenfolge nicht gefunden wird. $is_admin Variable speichert den zurückgegebenen Wert.
  • Die Bedingung verhindert, dass der Filter im Admin-Panel ausgeführt wird, damit wir sicher auf die Seiten mit den Plugin-Einstellungen zugreifen können. Wenn die Anforderungs-URI nicht enthält '/wp-admin/', dann rufen wir die option_active_plugins Filter.
  • Schließlich, wenn sich das aktuelle Plugin nicht im Array der aktiven Plugins befindet und der URI der aktuellen Seite nicht enthält /contact/, dann entfernen wir das Plugin aus $plugins.

Speichern Sie nun Ihr Plugin und laden Sie es auf Ihr /wp-content/mu-plugins/ Ordner. Löschen Sie den Cache und fügen Sie die [activeplugins] Shortcode zu mehreren Seiten. Es sollte in der Liste nur auf dem angezeigt werden /contact/

Kein CF7-Skript
Die Datei script.js ist aus der Liste der Seitenassets verschwunden

Wir können dann mit nur ein wenig zusätzlichem PHP eine Reihe von Plugins auf einmal deaktivieren.

$request_uri = parse_url( $_SERVER['REQUEST_URI'], PHP_URL_PATH );

$is_admin = strpos( $request_uri, '/wp-admin/' );

if( false === $is_admin ){
	add_filter( 'option_active_plugins', function( $plugins ){

		global $request_uri;

		$is_contact_page = strpos( $request_uri, '/contact/' );

		$myplugins = array( 
			"contact-form-7/wp-contact-form-7.php", 
			"code-snippets/code-snippets.php",
			"query-monitor/query-monitor.php",
			"autoptimize/autoptimize.php" 
		);

		if( false === $is_contact_page ){
			$plugins = array_diff( $plugins, $myplugins );
		}

		return $plugins;

	} );
}

In diesem Beispiel haben wir zuerst ein Array von zu entfernenden Plugins definiert, dann entfernen wir sie mit array_diff. Diese Funktion „vergleicht Array1 mit einem oder mehreren anderen Arrays und gibt die Werte in Array1 zurück, die in keinem der anderen Arrays vorhanden sind“.

Sie können den vollständigen Code dieses Plugins von Gist herunterladen.

Jetzt können Sie das Plugin in die hochladen Mu-Plugins Ordner und überprüfen Sie eine beliebige Seite Ihrer Website. Das mu-Plugin kann sehr individuell angepasst werden, indem mehr Bedingungen hinzugefügt und mehr URIs überprüft werden, aber jede Bedingung muss manuell zum Code hinzugefügt werden, und auf lange Sicht könnte dieses einfache Mu-Plugin schwierig und mühsam zu warten sein.

Aus diesem Grund sollten Sie sich die folgenden Plugins ansehen.

Plugins, die Plugins filtern

Als Alternative können wir uns eine Reihe guter Plugins ansehen, mit denen wir Filter hinzufügen können, die über das WordPress-Admin-Panel verwaltet werden können.

Plugin-Ladefilter

Plugin Load Filter ist eine kostenlose Option für WordPress-Benutzer, die Plugins unter mehreren Bedingungen filtern müssen.

Plugin-Ladefilter
Plugin Load Filter ermöglicht das Filtern von Plugins im Admin-Panel sowie auf den Seiten der Site

Derzeit unterstützt es die folgenden Funktionen:

  • Beitragsformate
  • Benutzerdefinierte Beitragstypen
  • Jetpack-Module
  • WP Embed-Inhaltskarte
  • URL-Filter für Experten (REST API / Heartbeat / AJAX / AMP / etc)

Sobald ein Filter aktiviert wurde, kann der Admin-Benutzer angeben, wo er auf der Site angewendet werden soll, wie in der Abbildung unten gezeigt.

Registerkarte "Aktivierung des Seitentypfilters"
Sobald der Filter aktiviert wurde, können Site-Administratoren ihre Ausnahmen auf der Registerkarte Seitentyp-Filteraktivierung festlegen

Plugin Organizer

Plugin Organizer ist ein beliebtes Plugin mit über 10,000 aktiven Installationen und einer beeindruckenden Bewertung von 5 von 5 Sternen. Es ist ein umfassenderes Plugin, das Site-Administratoren Folgendes ermöglicht:

  • Plugins selektiv nach Beitragstyp und Anfrage-URL deaktivieren
  • Plugins selektiv nach Benutzerrollen deaktivieren
  • Erstellen Sie Gruppen von Plugins
  • Ändern Sie die Ladereihenfolge des Plugins
  • Zusätzliche Funktionen
Seite mit den Plugin-Organizer-Einstellungen
Seite mit den Plugin-Organizer-Einstellungen

Die Seite mit den globalen Plugins-Optionen bietet eine Drag&Drop-Funktion, die es dem Administrator ermöglicht, Plugins global zu deaktivieren, wodurch verhindert wird, dass WordPress ein oder mehrere Plugins irgendwo auf der Site ausführt, es sei denn, dies ist für einzelne Beiträge oder Seiten anders angegeben. Die gleiche Funktion ist für Suchseiten- und Beitragstypen verfügbar.

Plugin-Organizer deaktiviert CF7 global
CF7 wurde global deaktiviert

Das Plugin fügt dem Beitragsbearbeitungsbildschirm eine Metabox hinzu, damit der Administrator globale und Beitragstypeinstellungen überschreiben kann. Diese Funktion kann auch für Beitragstypen aktiviert werden, indem Sie das entsprechende Element im Bildschirm Allgemeine Einstellungen markieren. Eine großartige Funktion ist die Plugin Organizer Debug Message, die dem Site-Administrator nützliche Informationen über Plugins liefert, die jede Site-Seite betreffen.

Weitere Informationen finden Sie in deren Dokumentation.

Plugin Organizer benutzerdefinierte Metabox auf der Kontaktseite
Plugin Organizer benutzerdefinierte Metabox auf der Kontaktseite

Perfmatters-Plugin

Ein teilweise anderer Ansatz kommt vom Perfmatters-Plugin. Es ist eine Premium-Alternative, die es dem Site-Administrator ermöglicht, Themen- und Plugin-Assets je nach URL oder benutzerdefiniertem Beitragstyp selektiv zu laden. Es ist ein großartiges Tool für die Plugin- und Theme-Optimierung. Tatsächlich wurde es von einem Teammitglied von entwickelt Behmaster!

Kämpfen Sie mit Ausfallzeiten und WordPress-Problemen? Behmaster ist die Hosting-Lösung, mit der Sie Zeit sparen! Schauen Sie sich unsere Funktionen an
Perfmatters Skriptmanager
Perfmatters Skriptmanager

Das Plugin hat eine Funktion namens Script Manager, in der alles ist gruppiert nach dem Plugin- oder Theme-Namen. Dies macht es super einfach, ein ganzes Plugin auf einmal oder einzelne CSS- und JavaScript-Dateien darin zu deaktivieren.

Sie können sogar Skripte mit Regex deaktivieren. Dies ist besonders hilfreich für Websites mit einer komplexeren URL-Struktur oder dynamisch generierten Seiten.

Dies ist sehr mächtig und kann die Geschwindigkeit Ihrer WordPress-Sites (insbesondere Ihrer Homepage) drastisch erhöhen. Ein paar Beispiele, wofür dies verwendet werden kann:

  • Plugins zum Teilen von sozialen Medien sollten nur auf Ihre Beiträge geladen werden. Sie können es überall einfach deaktivieren und nur auf Beitragstypen oder sogar benutzerdefinierte Beitragstypen laden.
  • Das beliebte Contact Form 7 Plugin lädt sich auf jeder Seite und jedem Beitrag. Sie können es einfach überall mit einem Klick deaktivieren und nur auf Ihrer Kontaktseite aktivieren.
  • Wenn Sie auf WordPress 5.0 aktualisiert haben, aber den Gutenberg-Blockeditor nicht verwenden, verwenden Sie vielleicht immer noch den klassischen Editor, es gibt zwei zusätzliche Frontend-Skripte, die Site-weit hinzugefügt werden und die Sie deaktivieren können: /wp-includes/css/dist/block-library/style.min.css und  /wp-includes/css/dist/block-library/theme.min.css

Sie können aus dieser Rezension von perfmatters sehen, dass es verringerte ihre Gesamtladezeiten um 20.2 %. Allein auf ihrer Homepage konnten sie die Anzahl der HTTP-Anfragen von 46 auf 30 reduzieren! Auch die Seitengröße ist von 506.3 KB auf 451.6 KB geschrumpft.

Geschwindigkeitstest mit perfmatters Plugin
Geschwindigkeitstest mit perfmatters Plugin

So verfolgen Sie die Leistung: Die Entwicklungstools des Browsers

Ein grundlegender Schritt auf dem Weg zur Leistungsoptimierung ist die Ladezeitmessung. Wir haben eine Reihe von Plugins und Online-Tools, mit denen wir die Website-Performance verfolgen können, wie Google Pagespeed Insights und Pingdom. Aber in erster Linie können wir die Dev Tools des Browsers verwenden, die viele aussagekräftige Informationen liefern.

Jeder Browser-Inspektor verfügt über ein Netzwerkfenster, das eine Liste von Netzwerkanforderungen und zugehörigen Informationen anzeigt. Folgen Sie diesen Links für eine detaillierte Dokumentation:

  • Firefox-Entwicklungstools
  • Chrome DevTools
  • Microsoft Edge F12-Entwicklungstools
  • Safari Web Inspector-Handbuch

In einer WordPress-Installation mit achtzehn aktiven Plugins haben wir wiederholt eine Post-Seite mit Firefox Dev Tools überprüft. Wir haben zuerst die Seitengeschwindigkeit gemessen und die angeforderten Ressourcen aufgelistet, bevor wir Filter-Plugins installieren. Die folgende Abbildung zeigt die Ausgabe des im Firefox-Netzwerkmonitor verfügbaren Leistungsanalysetools.

Firefox-Leistungsanalyse-Tool
Firefox-Leistungsanalyse-Tool

Der Netzwerkmonitor liefert die folgenden Ergebnisse (leerer Cache):

  • Größe: 255.19 Kb
  • Ladezeit: 1.24 Sekunden
  • Anfragen: 12

Im Folgenden haben wir den Plugin Organizer installiert, um zu verhindern, dass WordPress das CF7-Plugin ausführt. Das Tortendiagramm ändert sich ein wenig.

Firefox-Leistungsanalyse-Tool
Firefox-Leistungsanalyse-Tool

Jetzt lädt die Seite schneller (leerer Cache):

  • Größe: 104.21 Kb
  • Ladezeit: 0.80 Sekunden
  • Anfragen: 8

Als nächstes haben wir mehrere unnötige Plugins deaktiviert und das nächste Bild zeigt, wie sehr wir die Seitenleistung verbessert haben.

Firefox-Leistungsanalyse-Tool
Firefox-Leistungsanalyse-Tool

Nach dem Deaktivieren aller unnötigen Plugins gibt der leere Browsercache des Netzwerkmonitors folgende Daten zurück:

  • Größe: 101.98 Kb
  • Ladezeit: 0.46 Sekunden
  • Anfragen: 8

Wir können die Ergebnisse unserer Tests vergleichen. Die Ressourcengröße wurde um 60.04 % reduziert, die Ladezeit wurde von 1.24 Sekunden auf 0.46 Sekunden reduziert, und die Anzahl der HTTP-Anfragen wurde von 12 auf 8 verringert. Dies bestätigt, dass Plugins die Seitenleistung beeinträchtigen können und dass wir die Seitengeschwindigkeit erhöhen können, indem wir einen Plugin-Filter nutzen.

Zusammenfassung

Egal, ob Sie Ihre eigenen Skripte erstellen oder Tools von Drittanbietern installieren, das Organisieren und Filtern von Plugins ist etwas, das Sie bei der Leistungsoptimierung immer berücksichtigen sollten. Denken Sie daran, dass nicht alle Plugins im Hinblick auf die Leistung entwickelt wurden. Daher kann es ratsam sein, sich etwas Zeit zu nehmen und festzustellen, welche Plugin-Assets (CSS und JS) wo geladen werden.

Aber zu lernen, wie man WordPress-Plugins deaktiviert, ist nur eine von vielen anderen Techniken, die darauf abzielen, die Geschwindigkeit der Website zu erhöhen. Hier ist eine Liste mit einigen anderen hilfreichen Leitfäden und Tutorials in Bezug auf die Website-Performance:

  • So beschleunigen Sie WordPress (Ultimate Guide)
  • Ein Leitfaden für Anfänger zur Optimierung der Website-Geschwindigkeit
  • So reduzieren Sie TTFB, um die Ladezeiten von WordPress-Seiten zu verbessern
  • So diagnostizieren Sie eine hohe Admin-Ajax-Nutzung auf Ihrer WordPress-Site
  • So bereinigen Sie Ihre wp_options-Tabelle und automatisch geladene Daten
  • So deaktivieren Sie WordPress-Plugins (kein Zugriff auf WP-Admin)

Verwandte Artikel

0 Kommentare
Inline-Feedbacks
Alle Kommentare anzeigen
Nach oben-Taste