Tworzysz stronę internetową i potrzebujesz pomocy?

Dziś zadebiutował publicznie WordPress 5.2 „Jaco” (od Jaco Pastorius), który przyniósł kilka zmian, jak to w przypadku aktualizacji bywa. Wśród zmian mamy dodatkowe strony związane z usługą „Site Health” (opcja, która pojawiła się wraz z 5.1), gdzie możemy sprawdzić stan witryny („stan witryny pokazuje krytyczne informacje na temat konfiguracji WordPressa i innych elementów, które wymagają twojej uwagi”), oraz uzyskać dodatkowe informacje o samej stronie („strona pokazuje każdy szczegół konfiguracji twojej witryny opartej o system WordPress”). Poprawiono też mechanizm zarządzania i kontrolowania ewentualnych błędów PHP, wraz ze specjalnym trybem awaryjnym (recovery mode). Ale dla mnie chyba najistotniejszą zmiana jest nowa funkcja, a wraz z nią nowy filtr, dzięki któremu można będzie w prosty sposób dodać kod zaraz za znacznikiem <body>.

Nowy filtr/akcja (hak) dla motywów (wp_body_open)

Oczywiście nie jest to coś, z czego skorzysta każdy użytkownik WordPressa, ale jest to opcja, której wielokrotnie mi brakowało w WordPressie, i zastanawiałem się, czy i ew. kiedy w końcu się pojawi. Oczywiście można było to obejść, ale… teraz będzie natywnie. Przynajmniej gdy deweloperzy zaktualizują motywy, wprowadzając nową funkcję w odpowiednim miejscu struktury strony:

<html>
	<head>
		<?php wp_head(); // filtr: wp_head ?>
	</head>
	<body>
		<?php wp_body_open(); // nowy filtr: wp_body_open ?>
		<?php wp_footer(); // filtr: wp_footer ?>
	</body>
</html>

Dzięki temu obok możliwości wstrzykiwania kodu do nagłówka (funkcja wp_head() i filtr wp_head, znacznik HTML <head>), czy stopki (funkcja wp_footer() i filtr wp_footer, tuż przed znacznikiem HTML </body>) będziemy mogli wstrzyknąć kod również na samym początku sekcji głównej strony, czyli „body”:

function webinsider_wp_body_open_custom_code() {
    // Jakiś kod zaraz za znacznikiem <body>
}
add_action( 'wp_body_open', 'webinsider_wp_body_open_custom_code' );

Teraz – tak jak napisałem – pozostaje poczekać, aż odpowiednia funkcja zostanie wdrożona w motywach. I o ile na potrzeby własnych stron można już będzie z nowego filtra korzystać (czy po aktualizacji motywu przez dewelopera, czy po samodzielnej modyfikacji – pamiętając, by użyć motywu potomnego), to w przypadku wdrożeń „bardziej uniwersalnych” (np. wtyczka ogólnodostępna) warto zweryfikować, czy motyw wspiera nowy filtr:

function webinsider_wp_body_open_custom_code() {
    // Jakiś kod zaraz za znacznikiem <body>
}
if ( did_action( 'wp_body_open' ) ) {
	add_action( 'wp_body_open', 'webinsider_wp_body_open_custom_code' );
} else {
	...
}

Bo nie ma co się oszukiwać, ale nie każdy autor nawet aktualnie dostępnego motywu (bezpłatnego, ale i komercyjnego) dokona (szybkiej) aktualizacji, tak samo, jak nie każdy użytkownik (administrator) strony dokona jego aktualizacji…

(!) Zgłoś błąd na stronie
Pomogłem? To może postawisz mi wirtualną kawę?
LUTy dla D-Cinelike (DJI Mini 3 Pro, DJI Avata, OSMO Pocket) od MiniFly
Wdrożenie Omnibusa w sklepie na WooCommerce
Jak (legalnie) latać dronem w Kategorii Otwartej
Tworzysz stronę internetową i potrzebujesz pomocy?
Patryk
Tworzysz stronę internetową i potrzebujesz pomocy?