Wordpress

Hogyan lehet letiltani a WordPress beépülő modulok betöltését bizonyos oldalakon és bejegyzéseken

Ha a WordPress teljesítményéről van szó, sok mondanivalónk van a bővítményekről. Mindegyik beépülő modul hozzáad egy PHP-kódot, amelyet végre kell hajtani, általában szkripteket és stílusokat tartalmaz, és további lekérdezéseket is végrehajthat az adatbázisban. Ez azt jelenti, hogy a szükségtelen bővítmények befolyásolhatják az oldal sebességét, és negatív hatással lehetnek a felhasználói élményre és az oldal rangsorolására.

Példaként vegyünk egy beépülő modult, amely egyéni űrlapokat készít és jelenít meg a címlapokon, például a 7-es kapcsolatfelvételi űrlapot. Általában egyetlen űrlapra van szüksége egyetlen oldalon, de ideális esetben bármelyik oldalra beágyazhat egy űrlapot a a bővítmény rövid kódja. Emiatt a 7-es kapcsolatfelvételi űrlap a szkripteket és stílusokat a webhely minden oldalán betölti.

De valóban szeretné futtatni a beépülő modul kódját, és szkripteket és stílusokat tartalmaznia a WordPress webhely minden oldalán?

Ebben a bejegyzésben megmutatom, hogyan akadályozhatod meg, hogy bizonyos bejegyzésekre/oldalakra betöltődjenek a felesleges pluginek, hogy további bővítményeket telepíthess (természetesen ne őrülj meg), és így is gyorsan betöltődhet a WordPress weboldal. A feladat végrehajtásához programozottan letiltjuk a WordPress beépülő moduljait bizonyos bejegyzéseken és oldalakon. Ez egy négy lépésből álló folyamat:

  • Válassza ki az igényeinek megfelelő legnépszerűbb bővítményeket, és hasonlítsa össze funkcióikat és hatásukat az oldalsebességre.
  • Programozottan listázza és szűrje a beépülő modulokat az oldal betöltése előtt.
  • Programozottan szűrheti és deaktiválhatja a szükségtelen bővítményeket egy mu-plugin segítségével.
  • Szűrje ki és inaktiválja a szükségtelen beépülő modulokat egy bővítmény segítségével.
  • Kövesse nyomon a webhely teljesítményét.

Merüljünk mélyre.

Ha szelektíven letiltja a WordPress beépülő modulok betöltését bizonyos oldalakon/bejegyzésekben/webhelyszerte, az felgyorsíthatja webhelyét! 🚀Kattintson Tweet

Három általános szabály, amelyet be kell tartani a bővítmény kiválasztásakor

A következő általános szabályok hasznosak lehetnek a bővítmény kiválasztásakor:

  • Csak megbízható fejlesztőktől származó, jól kódolt bővítményeket telepítsen: vegye figyelembe az aktív telepítéseket, a felhasználói értékelést, az ügyféltámogatást, a frissítési gyakoriságot és a WordPress közösségtől származó minden hasznos információt.
  • Részesítse előnyben a méretezhető beépülő modulokat: hasonlítsa össze a hasonló beépülő modulokat a teljesítmény tekintetében, használja a böngésző fejlesztői eszközeit és/vagy online szolgáltatásokat, mint például a Google Pagespeed Insights, a Pingdom és a GTmetrix, hogy értékelje az egyes beépülő modulok hatását az oldal betöltési idejére.
  • Ne telepíts felesleges bővítményeket: ennek nyilvánvalónak kell lennie, de érdemes megemlíteni, hogy soha ne telepíts olyan bővítményt, amelyre biztonsági és teljesítményi okokból nincs is szükséged. Ezenkívül ellenőrizze időnként a beépülő moduljait, és távolítsa el azokat, amelyekre már nincs szüksége, és amelyeket már nem használ.
A WordPress adattár hírneve
A WordPress Plugin Directory releváns információkat tartalmaz, amelyeket mindig figyelembe kell vennünk a bővítmény kiválasztásakor

Példa az életből

A Contact Form 7 egy nagyszerű bővítmény, amely űrlapokat készít és jelenít meg a WordPressben. Tökéletes példa céljainkra, mert minden oldalon tartalmazza a következő fájlokat, még akkor is, ha az oldal nem tartalmaz űrlapot:

  • style.css
  • scripts.js
Chrome DevTools hálózati panel
A Chrome DevTools Hálózat panele részletes információkat tartalmaz az oldal betöltésekor küldött hálózati kérésekről

Egy beépülő modul lelassíthatja webhelyét, de a kérés URL-jétől függően kényszeríthetjük a WordPress-t a bővítmények szelektív deaktiválására. Ha Ön fejlesztő, olvassa el a következő részt, ahol megtudjuk, hogyan kell programozottan kezelni a beépülő modulokat, és hogyan készíthet olyan mu-bővítményt, amely kiszűri a szükségtelen beépülő modulokat. Ha Ön nem fejlesztő, nyugodtan ugorjon át a bővítmények szűrését és rendszerezését lehetővé tevő bővítményeknek szentelt részre.

Hogyan szerezheti be az összes aktív beépülő modul listáját programozottan

Először is, egy egyszerű PHP-kódrészlettel megkaphatja a WordPress webhelyén található összes aktív beépülő modul listáját. A következő kódot hozzáadhatja egy egyéni bővítményhez, vagy egy ingyenes WordPress-bővítmény, például a Code Snippets szerkesztőjéhez. Ha úgy dönt, hogy az egyéni beépülő modult választja, ne felejtse el hozzáadni a beépülő modul fejlécét az alábbiak szerint.

Aktív WordPress bővítmények
Aktív bővítmények a wp_options táblában

Minden aktív beépülő modul tárolva van wp_options asztal ahol options_name is active_plugins. Így ezeknek a bővítményeknek a listáját egy egyszerű segítségével kivonhatjuk get_option hívás. Íme a kód:

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

Módosítsa a beépülő modul adatait, majd mentse el a active-plugins.php fájlt, és töltse fel a sajátjára /wp-content/plugins/ mappát. Hozzon létre egy új blogbejegyzést, és tartalmazza a [activeplugins] rövid kód. Most meg kell jelennie az összes aktív beépülő modul listájának.

Aktív bővítmények listája
Az aktív beépülő modulok listája az egyes bővítmények mappáját és nevét mutatja

Ezzel egy lépéssel tovább léphetünk, és programozottan adhatunk hozzá vagy távolíthatunk el bővítményeket, kihasználva a option_active_plugins szűrő. Ez a szűrő az option_$option_name szűrőcsoporthoz tartozik, amely lehetővé teszi bármely beállítás szűrését az adatbázisból való lekérést követően. Mivel az összes aktív beépülő modul tárolva van wp_options asztal ahol option_value is active_plugins, a option_active_plugins szűrő lehetőséget biztosít a bővítmények programozott aktiválására vagy deaktiválására.

Így programozottan aktiválhatunk egy plugint. Tegyük fel például, hogy aktiválni szeretné az ACF beépülő modult. Íme a kód:

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

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

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

	return $plugins;

} );

Ebben a példában azt feltételezzük, hogy a bővítmény telepítve van, és még nincs aktiválva.

A fenti kód egyszerűen hozzáadja a bővítményt az aktív bővítmények listájához webhelyünk minden oldalán. Nem túl hasznos, de érted a lényeget.

Ezenkívül a beépülő modulnak minden más beépülő modul előtt kell betöltenie, különben a kódunk nem működhet a várt módon. A beépülő modul betöltésének prioritása érdekében hozzá kell adnunk a szkriptünket egy Must-use pluginhez.

Hogyan készítsünk kötelező beépülő modult a beépülő modulok programozott deaktiválásához

Egy Must use plugint fogunk építeni, ami egy adott beépülő modul /wp-content almappát, és minden szokásos bővítmény előtt fut.

Sajnos ebben a helyzetben nem használhatunk feltételes címkéket, mert a feltételes lekérdezési címkék nem működnek a lekérdezés lefutása előtt. Előtte mindig hamisan adnak vissza. Így egyébként ellenőriznünk kell a feltételeinket, például a kérés URI elemzésével és a megfelelő URL elérési út ellenőrzésével.

Adja hozzá a következő kódot a active-plugins.php fájlt, majd helyezze át ide /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;

	} );
}

Merüljünk el ebbe a kódba:

  • A parse_url a kért URL elérési útját adja vissza.
  • Az strpos megkeresi az első előfordulásának helyét '/wp-admin/', és visszatér false ha a karakterlánc nem található. $is_admin változó tárolja a visszaadott értéket.
  • A feltétel megakadályozza a szűrő futtatását az adminisztrációs panelen, hogy biztonságosan hozzáférhessünk a plugin beállítási oldalaihoz. Ha a kérés URI nem tartalmazza '/wp-admin/', akkor meghívjuk a option_active_plugins szűrő.
  • Végül, ha az aktuális beépülő modul nincs az aktív beépülő modulok tömbjében, és az aktuális oldal URI-ja nem tartalmaz /contact/, majd eltávolítjuk a plugint innen $plugins.

Most mentse el a bővítményt, és töltse fel a sajátjára /wp-content/mu-plugins/ mappát. Törölje a gyorsítótárat és adjuk hozzá a [activeplugins] rövid kódot több oldalra. A listában csak a /contact/ cimre.

Nincs CF7 szkript
A script.js fájl eltűnt az oldalelemek listájáról

Ezután egy kis kiegészítő PHP-vel egyszerre hatástalaníthatjuk a beépülő modulok tömbjét.

$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;

	} );
}

Ebben a példában először meghatároztuk az eltávolítandó beépülő modulok tömbjét, majd eltávolítjuk őket az array_diff paranccsal. Ez a függvény „összehasonlítja a tömb1-et egy vagy több másik tömbbel, és visszaadja a tömb1 azon értékeit, amelyek egyik másik tömbben sem találhatók meg”.

A bővítmény teljes kódját letöltheti a Gist webhelyről.

Most feltöltheti a bővítményt a mu-bővítmények mappát, és ellenőrizze webhelye bármely oldalát. A mu-plugin nagymértékben testreszabható, több feltétel hozzáadásával és több URI ellenőrzésével, de minden feltételt manuálisan kell hozzáadni a kódhoz, és hosszú távon ez az egyszerű mu-bővítmény nehézkes és gondos karbantartást okozhat.

Emiatt érdemes lehet megnézni a következő bővítményeket.

Beépülő modulok, amelyek szűrik a beépülő modulokat

Alternatív megoldásként számos jó beépülő modult nézhetünk meg, amelyek segítségével a WordPress adminisztrációs paneljéről kezelhető szűrőket adhatunk hozzá.

Plugin betöltési szűrő

A Plugin Load Filter egy ingyenes lehetőség a WordPress-felhasználók számára, akiknek többféle feltétel mellett kell szűrniük a beépülő modulokat.

Plugin betöltési szűrő
A Plugin Load Filter lehetővé teszi a bővítmények szűrését az adminisztrációs panelen és a webhely oldalain

Jelenleg a következő funkciókat támogatja:

  • Post formátumok
  • Egyéni bejegyzés típusok
  • Jetpack modulok
  • WP Embed tartalomkártya
  • URL-szűrő szakértőknek (REST API / Heartbeat / AJAX / AMP stb.)

A szűrő aktiválása után az adminisztrátor megadhatja, hogy a webhelyen hol kell alkalmazni, az alábbi képen látható módon.

Oldaltípus Szűrő aktiválása lap
A szűrő aktiválása után a webhely adminisztrátorai beállíthatják a kivételeiket az Oldaltípus-szűrő aktiválása lapon

Plugin Szervező

A Plugin Organizer egy népszerű beépülő modul, több mint 10,000 5 aktív telepítéssel, és lenyűgöző értékeléssel az 5-ből XNUMX. Ez egy átfogóbb bővítmény, amely lehetővé teszi a webhely adminisztrátorainak, hogy:

  • A beépülő modulok szelektív deaktiválása bejegyzés típusa és kérés URL-címe szerint
  • A beépülő modulok szelektív deaktiválása felhasználói szerepkörök szerint
  • Hozzon létre bővítmények csoportjait
  • Módosítsa a bővítmény betöltési sorrendjét
  • További funkciók
Plugin Organizer beállításai oldalon
Plugin Organizer beállításai oldalon

A Globális beépülő modulok beállítási oldala drag&drop funkciót biztosít, amely lehetővé teszi az adminisztrátor felhasználók számára, hogy globálisan letiltsák a beépülő modulokat, megakadályozva, hogy a WordPress egy vagy több beépülő modult futtasson bárhol a webhelyen, kivéve, ha az egyes bejegyzéseknél vagy oldalakon másként van megadva. Ugyanez a funkció érhető el a keresőoldalak és bejegyzéstípusok esetében.

A beépülő modul szervezője globálisan tiltsa le a CF7-et
A CF7 globálisan le van tiltva

A beépülő modul hozzáad egy metaboxot a bejegyzésszerkesztő képernyőhöz, így az adminisztrátor felülbírálhatja a globális és bejegyzéstípus-beállításokat. Ez a funkció bejegyzéstípusoknál is aktiválható, ha bejelöli a megfelelő elemet az Általános beállítások képernyőn. Nagyszerű funkció a Plugin Organizer Debug Message, amely hasznos információkkal látja el a webhely adminisztrátorát a webhely minden oldalát érintő beépülő modulokról.

További információk a dokumentációjukban találhatók.

Plugin Organizer egyéni metabox a Kapcsolat oldalon
Plugin Organizer egyéni metabox a kapcsolati oldalon

Perfmatters beépülő modul

Egy részben eltérő megközelítés a Perfmatters beépülő modulból származik. Ez egy prémium alternatíva, amely lehetővé teszi a webhely adminisztrátorának, hogy szelektíven betöltse a témát és a beépülő modulokat az URL-től vagy az egyéni bejegyzés típusától függően. Ez egy nagyszerű eszköz a bővítmények és a téma optimalizálásához. Valójában egy csapattag fejlesztette ki Behmaster!

Leállásokkal és WordPress-problémákkal küzd? Behmaster az a tárhely-megoldás, amellyel időt takaríthat meg! Tekintse meg szolgáltatásainkat
Perfmatters szkriptkezelő
Perfmatters szkriptkezelő

A beépülő modul rendelkezik egy Script Manager nevű funkcióval, ahol minden megtalálható a beépülő modul vagy a téma neve alapján csoportosítva. Ez rendkívül egyszerűvé teszi a teljes bővítmény vagy az egyes CSS- és JavaScript-fájlok egyidejű letiltását.

Még a szkripteket is letilthatja a regex segítségével. Ez különösen hasznos azoknál a webhelyeknél, amelyek összetettebb URL-struktúrával rendelkeznek, vagy dinamikusan generált oldalak.

Ez nagyon erős, és drasztikusan megnövelheti a WordPress-webhelyek (különösen a kezdőlap) sebességét. Néhány példa arra, hogy mire használható:

  • A közösségi média megosztási bővítményeit csak a bejegyzéseibe szabad betölteni. Könnyen letilthatja mindenhol, és csak a bejegyzéstípusokra, vagy akár az egyéni bejegyzéstípusokra töltheti be.
  • A népszerű Contact Form 7 plugin minden oldalon és bejegyzésben betöltődik. Könnyen, egyetlen kattintással mindenhol letilthatja, és csak a kapcsolatfelvételi oldalon engedélyezheti.
  • Ha frissített a WordPress 5.0-ra, de nem használja a Gutenberg blokkszerkesztőt, esetleg még mindig a klasszikus szerkesztőt használja, két további kezelőfelületi szkriptet adunk hozzá az egész webhelyen, amelyeket letilthat: /wp-includes/css/dist/block-library/style.min.css és a /wp-includes/css/dist/block-library/theme.min.css

Ebből a perfmatterek áttekintéséből láthatja, hogy 20.2%-kal csökkentették a teljes betöltési idejüket. Csak a honlapjukon tudták csökkenteni a HTTP kérések számát 46-ról 30-ra! Az oldal mérete is 506.3 KB-ról 451.6 KB-ra csökkent.

Sebességteszt a perfmatters beépülő modullal
Sebességteszt a perfmatters beépülő modullal

A teljesítmény nyomon követése: A böngésző fejlesztői eszközei

A teljesítményoptimalizálás felé vezető úton egy alapvető lépés a terhelési idő mérése. Számos bővítményünk és online eszközünk van, amelyek segítségével nyomon követhetjük a webhely teljesítményét, például a Google Pagespeed Insights és a Pingdom. De mindenekelőtt a böngésző fejlesztői eszközeit használhatjuk, amelyek sok értelmes információval szolgálnak.

Minden böngészőfelügyelő rendelkezik egy Hálózati panellel, amely megjeleníti a hálózati kérések listáját és a kapcsolódó információkat. A részletes dokumentációért kövesse az alábbi linkeket:

  • Firefox fejlesztői eszközök
  • chromedevtools
  • Microsoft Edge F12 fejlesztői eszközök
  • Safari webfelügyelő útmutató

Egy tizennyolc aktív beépülő modult tartalmazó WordPress-telepítés során többször is megvizsgáltunk egy bejegyzést a Firefox Dev Tools segítségével. Először megmértük az oldal sebességét, és felsoroltuk a kért erőforrásokat, mielőtt bármilyen szűrőbővítményt telepítenénk. A következő kép a Firefox Network monitoron elérhető teljesítményelemző eszköz kimenetét mutatja.

Firefox teljesítményelemző eszköz
Firefox teljesítményelemző eszköz

A Hálózatfigyelő a következő eredményeket adja (üres gyorsítótár):

  • méret: 255.19 Kb
  • betöltési idő: 1.24 másodperc
  • kérések: 12

Ezt követően telepítettük a Plugin Organizert, hogy megakadályozzuk a WordPress számára a CF7 bővítmény futtatását. A kördiagram kissé megváltozik.

Firefox teljesítményelemző eszköz
Firefox teljesítményelemző eszköz

Most az oldal gyorsabban betöltődik (üres gyorsítótár):

  • méret: 104.21 Kb
  • betöltési idő: 0.80 másodperc
  • kérések: 8

Ezután több szükségtelen bővítményt deaktiváltunk, és a következő képen látható, hogy mennyit javítottunk az oldal teljesítményén.

Firefox teljesítményelemző eszköz
Firefox teljesítményelemző eszköz

Az összes szükségtelen bővítmény letiltása után a Network monitor üres böngésző-gyorsítótára a következő adatokat adja vissza:

  • méret: 101.98 Kb
  • betöltési idő: 0.46 másodperc
  • kérések: 8

Összehasonlíthatjuk tesztjeink eredményeit. Az erőforrás mérete 60.04%-kal csökkent a betöltési idő 1.24 másodpercről 0.46 másodpercre csökkent, és a HTTP kérések száma 12-ről 8-ra csökkent. Ez megerősíti, hogy a beépülő modulok befolyásolhatják az oldal teljesítményét, és hogy a beépülő modulok szűrőjének kihasználásával növelhetjük az oldal sebességét.

Összegzés

Függetlenül attól, hogy saját szkripteket készít, vagy harmadik féltől származó eszközöket telepít, a beépülő modulok rendszerezését és szűrését mindig figyelembe kell vennie, amikor teljesítményoptimalizálásról van szó. Ne feledje, nem minden beépülő modult fejlesztettek ki a teljesítményt szem előtt tartva. Ezért bölcs dolog eltölteni egy kis időt, és meghatározni, hogy milyen beépülő modulok (CSS és JS) töltődnek be, és hol.

De a WordPress beépülő moduljainak letiltásának megtanulása csak egy a sok egyéb technika közül, amelyek célja a webhely sebességének növelése. Íme a webhely teljesítményével kapcsolatos egyéb hasznos útmutatók és oktatóanyagok listája:

  • A WordPress felgyorsítása (Utimate Guide)
  • Útmutató kezdőknek a webhelysebesség-optimalizáláshoz
  • A TTFB csökkentése a WordPress oldalbetöltési idejének javítása érdekében
  • Hogyan diagnosztizálható a magas Admin-Ajax használat a WordPress webhelyén
  • A wp_options tábla és az automatikusan betöltött adatok megtisztítása
  • A WordPress beépülő modulok letiltása (nincs hozzáférés a WP-Adminhoz)

Kapcsolódó cikkek

0 Hozzászólások
Inline visszajelzések
Az összes hozzászólás megtekintése
Vissza a lap tetejére gombra