Wordpress

Jak zakázat načítání pluginů WordPress na konkrétních stránkách a příspěvcích

Pokud jde o výkon WordPressu, máme hodně co říci o pluginech. Každý plugin přidává PHP kód, který je třeba provést, obvykle obsahuje skripty a styly a může dokonce provádět další dotazy proti databázi. To znamená, že nepotřebné pluginy mohou ovlivnit rychlost stránky a mohou mít negativní dopad na uživatelskou zkušenost a hodnocení vaší stránky.

Jako příklad zvažte plugin, který vytváří a zobrazuje vlastní formuláře na předních stránkách, jako je Kontaktní formulář 7. Obvykle byste potřebovali pouze jeden formulář na jedné stránce, ale v ideálním případě můžete chtít vložit formulář na jakoukoli stránku pomocí krátký kód pluginu. Z tohoto důvodu kontaktní formulář 7 načte skripty a styly na každé stránce vašeho webu.

Ale opravdu chcete spustit kód pluginu a zahrnout skripty a styly? na každé stránce vašeho webu WordPress?

V tomto příspěvku vám ukážu, jak zabránit načítání nepotřebných pluginů na konkrétních příspěvcích/stránkách, abyste si mohli nainstalovat další pluginy (samozřejmě se nezbláznit), a přesto se váš web WordPress rychle načítal. Abychom tento úkol splnili, programově zakážeme pluginy WordPress na konkrétních příspěvcích a stránkách. Toto je čtyřfázový proces:

  • Vyberte si nejoblíbenější pluginy, které vyhovují vašim potřebám, a porovnejte jejich funkce a účinky na rychlost stránky.
  • Programově vypisujte a filtrujte pluginy před načtením stránky.
  • Programově filtrujte a deaktivujte nepotřebné pluginy pomocí mu-pluginu.
  • Filtrujte a deaktivujte nepotřebné pluginy pomocí pluginu.
  • Sledujte výkon webu.

Pojďme se ponořit hluboko.

Selektivní zakázání načítání pluginů WordPress na konkrétních stránkách/příspěvcích/celém webu může pomoci urychlit váš web! 🚀Kliknutím Tweet

Tři obecná pravidla, která je třeba dodržovat při výběru pluginu

Při výběru pluginu vám mohou pomoci následující obecná pravidla:

  • Instalujte pouze dobře kódované pluginy od důvěryhodných vývojářů: zvažte aktivní instalace, hodnocení uživatelů, klientskou podporu, frekvenci aktualizací a jakékoli užitečné informace pocházející z komunity WordPress.
  • Preferujte škálovatelné pluginy: porovnejte podobné pluginy, pokud jde o výkon, pomocí nástrojů pro vývojáře prohlížeče a/nebo online služeb, jako jsou Google Pagespeed Insights, Pingdom a GTmetrix, abyste vyhodnotili dopad každého pluginu na dobu načítání stránky.
  • Neinstalujte nepotřebné pluginy: mělo by to být zřejmé, ale stojí za zmínku, že byste nikdy neměli instalovat plugin, který z bezpečnostních a výkonových důvodů skutečně nepotřebujete. Nezapomeňte také čas od času zkontrolovat své pluginy a odinstalovat ty, které již nepotřebujete a nepoužíváte.
Reputace úložiště WordPress
WordPress Plugin Directory poskytuje relevantní informace, které bychom měli vždy vzít v úvahu při výběru pluginu

Příklad ze skutečného života

Contact Form 7 je skvělý plugin, který vytváří a zobrazuje formuláře ve WordPressu. Poskytuje dokonalý příklad pro naše účely, protože na každé stránce obsahuje následující soubory, i když stránka neobsahuje formulář:

  • style.css
  • scripts.js
Panel sítě Chrome DevTools
Panel Síť Chrome DevTools poskytuje podrobné informace o síťových požadavcích provedených při načítání stránky

Plugin může zpomalit váš web, ale můžeme donutit WordPress, aby selektivně deaktivoval pluginy v závislosti na adrese URL požadavku. Pokud jste vývojář, přečtěte si další část, kde se naučíme, jak programově spravovat pluginy a vytvořit mu-plugin, který filtruje nepotřebné pluginy. Pokud nejste vývojář, neváhejte přejít do sekce věnované pluginům, které umožňují filtrovat a organizovat pluginy.

Jak programově získat seznam všech aktivních pluginů

Za prvé, můžete získat seznam všech aktivních pluginů na vašem webu WordPress pomocí jednoduchého fragmentu kódu PHP. Následující kód můžete přidat buď do vlastního pluginu, nebo do editoru bezplatného pluginu WordPress, jako jsou úryvky kódu. Pokud byste se rozhodli použít svůj vlastní plugin, nezapomeňte přidat záhlaví pluginu, jak je vidět níže.

Aktivní pluginy WordPress
Aktivní pluginy v tabulce wp_options

Každý aktivní plugin je uložen v wp_options tabulka kde options_name is active_plugins. Seznam těchto pluginů tedy můžeme extrahovat jednoduchým get_option volání. Zde je kód:

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

Změňte podrobnosti pluginu a poté soubor uložte active-plugins.php soubor a nahrajte jej do svého /wp-content/plugins/ složka. Vytvořte nový příspěvek na blogu a zahrňte do něj [activeplugins] krátký kód. Nyní by se měl zobrazit seznam všech aktivních pluginů.

Seznam aktivních pluginů
Seznam aktivních pluginů zobrazuje složku a název každého pluginu

Díky tomu můžeme jít o krok dále a přidávat nebo odstraňovat pluginy programově využitím výhod option_active_plugins filtr. Tento filtr patří do skupiny filtrů option_$option_name, které umožňují filtrovat libovolnou možnost po jejím načtení z databáze. Protože všechny aktivní pluginy jsou uloženy v wp_options tabulka kde option_value is active_pluginsse option_active_plugins filtr poskytuje způsob, jak programově aktivovat nebo deaktivovat pluginy.

Můžeme tedy programově aktivovat plugin. Řekněme například, že chcete aktivovat plugin ACF. Zde je kód:

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

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

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

	return $plugins;

} );

V tomto příkladu předpokládáme, že plugin byl nainstalován a ještě nebyl aktivován.

Výše uvedený kód jednoduše přidá plugin do seznamu aktivních pluginů na každé stránce našeho webu. Není to moc užitečné, ale rozumíte tomu.

Kromě toho by se plugin měl načíst dříve než jakýkoli jiný plugin, jinak by náš kód nemohl fungovat podle očekávání. Abychom upřednostnili načítání našeho pluginu, musíme přidat náš skript do pluginu, který je nutné použít.

Jak vytvořit plugin, který musíte použít k programové deaktivaci pluginů

Chystáme se vytvořit plugin Must use, což je plugin sídlící ve specifickém /wp-content podsložkou a běží před jakýmkoli běžným pluginem.

Bohužel v této situaci nesmíme používat podmíněné značky, protože značky podmíněného dotazu nefungují před spuštěním dotazu. Do té doby se vždy vrátí false. Musíme tedy naše podmínky zkontrolovat jinak, například analýzou URI požadavku a kontrolou odpovídající cesty URL.

Přidejte následující kód do active-plugins.php soubor a poté jej přesuňte do /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;

	} );
}

Pojďme se ponořit do tohoto kódu:

  • parse_url vrátí cestu k požadované adrese URL.
  • strpos najde pozici prvního výskytu '/wp-admin/'a vrátí se false pokud řetězec není nalezen. $is_admin proměnná ukládá vrácenou hodnotu.
  • Podmínka brání spuštění filtru v admin panelu, abychom mohli bezpečně přistupovat na stránky nastavení pluginu. Pokud URI požadavku neobsahuje '/wp-admin/', pak vyvoláme option_active_plugins filtr.
  • Konečně, pokud aktuální plugin není v poli aktivních pluginů a URI aktuální stránky neobsahuje /contact/, poté plugin odstraníme $plugins.

Nyní uložte svůj plugin a nahrajte jej do svého /wp-content/mu-plugins/ složka. Vymažte mezipaměť a přidejte [activeplugins] krátký kód na několik stránek. Měl by být zobrazen v seznamu pouze na /contact/ stránky.

Žádný skript CF7
Soubor script.js zmizel ze seznamu zdrojů stránky

Pak můžeme zrušit nastavení řady pluginů najednou s trochou dalšího PHP.

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

	} );
}

V tomto příkladu jsme nejprve definovali pole pluginů, které mají být odstraněny, a poté je odstraníme pomocí array_diff. Tato funkce „porovnává pole1 s jedním nebo více jinými poli a vrací hodnoty v poli1, které nejsou přítomny v žádném jiném poli“.

Úplný kód tohoto pluginu si můžete stáhnout z Gist.

Nyní můžete plugin nahrát do mu-pluginy složku a prohlédněte si libovolnou stránku vašeho webu. Mu-plugin lze vysoce přizpůsobit přidáním dalších podmínek a kontrolou více URI, ale každá podmínka musí být do kódu přidána ručně a z dlouhodobého hlediska by tento jednoduchý mu-plugin mohl být obtížný a jeho údržba.

Z tohoto důvodu možná budete chtít vyzkoušet následující pluginy.

Pluginy, které filtrují pluginy

Jako alternativu se můžeme podívat na řadu dobrých pluginů, které nám umožňují přidávat filtry, které lze spravovat z administračního panelu WordPress.

Plugin Load Filter

Plugin Load Filter je bezplatná možnost pro uživatele WordPress, kteří potřebují filtrovat pluginy za několika podmínek.

Plugin Load Filter
Plugin Load Filter umožňuje filtrovat pluginy v admin panelu i na stránkách webu

V současné době podporuje následující funkce:

  • Formáty příspěvků
  • Vlastní typy příspěvků
  • Jetpack moduly
  • Obsahová karta WP Embed
  • Filtr URL pro experty (REST API / Heartbeat / AJAX / AMP / atd.)

Jakmile je filtr aktivován, může administrátor určit, kde na webu má být použit, jak je znázorněno na obrázku níže.

Karta Aktivace filtru typu stránky
Jakmile je filtr aktivován, mohou správci webu nastavit své výjimky na kartě Aktivace filtru typu stránky

Organizátor pluginů

Plugin Organizer je oblíbený plugin s více než 10,000 5 aktivními instalacemi a působivým hodnocením 5 z XNUMX hvězdiček. Jedná se o komplexnější plugin umožňující správcům stránek:

  • Selektivně deaktivujte pluginy podle typu příspěvku a adresy URL požadavku
  • Selektivně deaktivujte pluginy podle uživatelských rolí
  • Vytvářejte skupiny pluginů
  • Změňte pořadí načítání pluginu
  • Další funkce
Stránka Nastavení organizátoru zásuvných modulů
Stránka Nastavení organizátoru zásuvných modulů

Stránka Global Plugins options poskytuje drag&drop zařízení, které umožňuje administrátorovi globálně zakázat pluginy, čímž zabrání WordPressu spouštět jeden nebo více pluginů kdekoli na webu, pokud to není pro jednotlivé příspěvky nebo stránky uvedeno jinak. Stejná funkce je k dispozici pro vyhledávací stránku a typy příspěvků.

Organizátor zásuvných modulů deaktivuje CF7 globálně
CF7 byl celosvětově zakázán

Plugin přidá metabox na obrazovku pro úpravy příspěvků, takže administrátor může přepsat globální nastavení a nastavení typu příspěvku. Tuto funkci lze aktivovat i pro typy příspěvků zaškrtnutím příslušné položky na obrazovce Obecná nastavení. Skvělou funkcí je Debug Message organizátora pluginů, která poskytuje správci webu užitečné informace o pluginech ovlivňujících každou stránku webu.

Více informací naleznete v jejich dokumentaci.

Vlastní metabox Organizéru zásuvných modulů na stránce Kontakt
Vlastní metabox Plugin Organizer na kontaktní stránce

Plugin Perfmatters

Částečně odlišný přístup pochází z pluginu Perfmatters. Je to prémiová alternativa, která umožňuje správci webu selektivně načítat prostředky motivu a pluginu v závislosti na adrese URL nebo vlastním typu příspěvku. Je to skvělý nástroj pro optimalizaci pluginů i témat. Ve skutečnosti je vyvinut členem týmu z Behmaster!

Potýkáte se s výpadky a problémy s WordPress? Behmaster je hostingové řešení navržené tak, aby vám šetřilo čas! Podívejte se na naše funkce
Správce skriptů Perfmatters
Správce skriptů Perfmatters

Plugin má funkci nazvanou Správce skriptů, kde je vše seskupené podle názvu pluginu nebo tématu. Díky tomu je velmi snadné zakázat celý plugin najednou nebo jednotlivé soubory CSS a JavaScript v něm.

Můžete dokonce zakázat skripty pomocí regulárního výrazu. To je užitečné zejména pro weby, které mají složitější strukturu adres URL nebo dynamicky generované stránky.

To je velmi výkonné a může výrazně zvýšit rychlost vašich webů WordPress (zejména domovské stránky). Několik příkladů toho, k čemu to lze použít:

  • Pluginy pro sdílení na sociálních sítích by se měly načítat pouze do vašich příspěvků. Můžete jej snadno zakázat všude a načíst pouze typy příspěvků nebo dokonce vlastní typy příspěvků.
  • Populární plugin Contact Form 7 se načte na každou stránku a příspěvek. Můžete jej snadno deaktivovat všude jedním kliknutím a povolit pouze na vaší kontaktní stránce.
  • Pokud jste upgradovali na WordPress 5.0, ale nepoužíváte editor bloků Gutenberg, možná stále používáte klasický editor, existují dva další skripty front-end, které jsou přidány na celý web, které můžete zakázat: /wp-includes/css/dist/block-library/style.min.css  a  /wp-includes/css/dist/block-library/theme.min.css

Z této recenze perfmatters můžete vidět, že snížila jejich celkovou dobu načítání o 20.2 %. Jen na své domovské stránce dokázali snížit počet požadavků HTTP ze 46 na 30! Velikost stránky se také zmenšila z 506.3 KB na 451.6 KB.

Test rychlosti s pluginem perfmatters
Test rychlosti s pluginem perfmatters

Jak sledovat výkon: Vývojářské nástroje prohlížeče

Zásadním krokem na cestě k optimalizaci výkonu je měření doby zatížení. Máme řadu pluginů a online nástrojů, které můžeme použít ke sledování výkonu webu, jako jsou Google Pagespeed Insights a Pingdom. V první řadě ale můžeme využít Dev Tools prohlížeče, které poskytují spoustu smysluplných informací.

Každý inspektor prohlížeče má panel Síť, který zobrazuje seznam síťových požadavků a související informace. Pro podrobnou dokumentaci postupujte podle těchto odkazů:

  • Firefox Dev Tools
  • chromedevtools
  • Vývojářské nástroje Microsoft Edge F12
  • Průvodce webovým inspektorem Safari

V instalaci WordPressu s osmnácti aktivními pluginy jsme opakovaně zkontrolovali stránku příspěvku pomocí Firefox Dev Tools. Nejprve jsme změřili rychlost stránky a uvedli požadované zdroje před instalací jakéhokoli filtrovacího pluginu. Následující obrázek ukazuje výstup nástroje pro analýzu výkonu dostupného v monitoru sítě Firefox.

Nástroj pro analýzu výkonu Firefoxu
Nástroj pro analýzu výkonu Firefoxu

Monitor sítě poskytuje následující výsledky (prázdná mezipaměť):

  • velikost: 255.19 Kb
  • doba načítání: 1.24 sekundy
  • požadavky: 12

Následně jsme nainstalovali Plugin Organizer, abychom zabránili WordPressu spouštět plugin CF7. Výsečový graf se trochu změní.

Nástroj pro analýzu výkonu Firefoxu
Nástroj pro analýzu výkonu Firefoxu

Nyní se stránka načítá rychleji (prázdná mezipaměť):

  • velikost: 104.21 Kb
  • doba načítání: 0.80 sekundy
  • požadavky: 8

Dále jsme deaktivovali několik nepotřebných pluginů a další obrázek ukazuje, jak moc jsme zlepšili výkon stránky.

Nástroj pro analýzu výkonu Firefoxu
Nástroj pro analýzu výkonu Firefoxu

Po deaktivaci všech nepotřebných pluginů vrátí prázdná mezipaměť prohlížeče monitoru sítě následující data:

  • velikost: 101.98 Kb
  • doba načítání: 0.46 sekundy
  • požadavky: 8

Můžeme porovnat výsledky našich testů. Velikost zdroje byla snížena o 60.04 %. doba načítání byla snížena z 1.24 sekundy na 0.46 sekundya počet požadavků HTTP se snížil z 12 na 8. To potvrzuje, že pluginy mohou ovlivnit výkon stránky a že můžeme zvýšit rychlost stránky využitím filtru pluginů.

Shrnutí

Ať už vytváříte své vlastní skripty nebo instalujete nástroje třetích stran, organizování a filtrování pluginů je něco, co byste měli vždy zvážit, pokud jde o optimalizaci výkonu. Pamatujte, že ne všechny pluginy jsou vyvíjeny s ohledem na výkon. Proto může být moudré věnovat nějaký čas a určit, jaké zdroje pluginů (CSS a JS) se načítají a kde.

Ale naučit se deaktivovat pluginy WordPress je jen jednou z mnoha dalších technik zaměřených na zvýšení rychlosti webu. Zde je seznam některých dalších užitečných průvodců a tutoriálů souvisejících s výkonem webu:

  • Jak zrychlit WordPress (Ultimate Guide)
  • Průvodce pro začátečníky optimalizací rychlosti webových stránek
  • Jak snížit TTFB pro zlepšení doby načítání stránky WordPress
  • Jak diagnostikovat vysoké využití Admin-Ajax na vašem webu WordPress
  • Jak vyčistit tabulku wp_options a automaticky načtená data
  • Jak zakázat pluginy WordPress (žádný přístup k WP-Admin)

Související články

0 Komentáře
Vložené zpětné vazby
Zobrazit všechny komentáře
Tlačítko Nahoru