MU-pluginek és szűrők
Hogyan adsz szűrőt és hookot a Complianzhoz must-use bővítménnyel, hogyan kényszeríted a sütiket a gyökérre, és mik a kész szűrőpéldák.
Ha a Complianz egy beépített működését a saját esetedhez kell igazítanod (például más „Bővebben” URL-t vagy egyedi helyőrzőt szeretnél), sokszor nem kell a bővítményhez nyúlnod: elég egy szűrő. A szűrőket ajánlottan MU-pluginnel (must-use bővítménnyel) adod hozzá.
Szűrők röviden
Szekció neve “Szűrők röviden”A WordPress szűrőkkel (filter hook) engedi, hogy a bővítmények futás közben módosítsanak adatot. A bővítmény egy visszahívó függvényt köt a szűrőhöz. Amikor a szűrő lefut, minden hozzákötött függvény prioritási sorrendben megkapja az értéket, és újat adhat vissza helyette.
<?phpfunction example_callback( $example ) { // Itt módosíthatod az $example értékét. return $example;}add_filter( 'example_filter', 'example_callback' );Az $example átkerül a függvénybe, (esetleg) módosul, és visszatér. Ha még sosem használtál add_filter()-t, módosítás előtt készíts biztonsági mentést a fájlról, és legyen kéznél FTP-hozzáférés, hogy hiba esetén visszaállíthass.
Miért MU-plugin, és nem a functions.php?
Szekció neve “Miért MU-plugin, és nem a functions.php?”A MU-plugin a wp-content alatti mu-plugins mappa fájljainak gyűjteménye. Ezeket a WordPress alapból betölti, és a WordPress-adminban nem lehet kikapcsolni őket. A fájlok a WordPress és a téma frissítésekor is a helyükön maradnak.
A szűrőt a functions.php-ba is beírhatod, de ennek hátrányai vannak:
- a téma frissítésekor a
functions.phpúj verzióra cserélődik, és az általad hozzáadott kód elvész (kivéve, ha gyermektémát használsz); - a
functions.phpa témához tartozik, ezért témaváltáskor a kódod többé nem fut le.
A WordPress mindig ellenőrzi, hogy létezik-e a /mu-plugins/ mappa, és lefuttatja a benne lévő szkripteket. Ez a WordPress magja után történik, tehát a MU-pluginben lévő kód a /plugins/ és a /themes/ mappák kódja előtt fut le. A mappa alapból nem létezik: hozd létre FTP-kliensben a /wp-content/ könyvtárban, hogy az eredmény /wp-content/mu-plugins/ legyen.
Szűrő hozzáadása MU-pluginnel
Szekció neve “Szűrő hozzáadása MU-pluginnel”- Nyiss egy szövegszerkesztőt, hozz létre új fájlt, és kezdd a
<?phpsorral. - Másold be a szűrő kódját (például az alábbi gyűjteményből).
- Mentsd a fájlt
.phpkiterjesztéssel, példáulmyfilter.phpnéven. Használj beszédes fájlnevet, hogy később is tudd, mire való az adott MU-plugin, főleg ha több van belőle. - Töltsd fel a fájlt a
wp-content/mu-plugins/mappába FTP-vel (például FileZillával vagy Cyberduckkal). - Ellenőrizd az oldalon, hogy megvan-e a kívánt hatás. Egyes szűrők csak a gyorsítótár ürítése után látszanak, ezért érdemes privát (inkognitó) ablakban tesztelni. Ha hiba jelenik meg, töröld a fájlt a
mu-pluginsmappából, és az oldal visszaáll.
Ha a szűrőt a functions.php-ba teszed, hagyd ki a fájl első, <?php sorát. MU-pluginben ez a sor maradhat.
Példa: sütik beállítása a gyökérre
Szekció neve “Példa: sütik beállítása a gyökérre”Gyakran kért igény, hogy a sütik elérési útját a webhely gyökerére (vagy egy aldomainre) kényszeríted. Ez főleg több WordPress-telepítéses domaineknél kell, ahol a hozzájárulás-kezelést egységesíteni szeretnéd.
A Complianz a sütik útvonalát és tartományát két szűrővel adja át, amelyeket MU-pluginből felülírhatsz:
cmplz_cookie_path: a süti elérési útja (alapesetben a webhely útvonala, gyökéren/);cmplz_cookie_domain: a süti tartománya.
Egy MU-plugin, amely a sütiket a gyökérútvonalra állítja:
<?phpadd_filter( 'cmplz_cookie_path', function( $path ) { return '/';} );Ha másik könyvtárba vagy almappába szeretnéd állítani, a '/' helyére írd az útvonalat. Mentsd például force-cookies-on-root.php néven, és töltsd fel a /wp-content/mu-plugins/ mappába.
Egy másik, a gyökérre vonatkozó beállítás a varázslóban is megvan, a sütik gyökértartományra állítása. Az MU-pluginre akkor van szükség, ha ennél egyedibb viselkedést akarsz.
Szűrőgyűjtemény
Szekció neve “Szűrőgyűjtemény”Az alábbi szűrők készen vannak, csak az értékeket kell átírnod. Mindegyik <?php sorral kezdődik, ezt functions.php-nál hagyd ki.
Szkriptek blokkolása és feloldása a sütiblokkolóban
Szekció neve “Szkriptek blokkolása és feloldása a sütiblokkolóban”<?phpfunction cmplz_edit_script_tags( $script_tags ) { $script_tags[] = 'my-blocked-url.com'; unset( $script_tags['my-un-blocked-url.com'] ); return $script_tags;}add_filter( 'cmplz_known_script_tags', 'cmplz_edit_script_tags' );Az URL-ek a blokkolandó szkriptek vagy a tartalmukban szereplő szövegrészek. Az unset sor a blokkolásból kivett elemhez való.
Aszinkron szkriptek blokkolása és feloldása
Szekció neve “Aszinkron szkriptek blokkolása és feloldása”<?phpfunction cmplz_edit_async_script_tags( $async_script_tags ) { $async_script_tags[] = 'my-blocked-url.com'; unset( $async_script_tags['my-un-blocked-url.com'] ); return $async_script_tags;}add_filter( 'cmplz_known_async_tags', 'cmplz_edit_async_script_tags' );iframe-ek blokkolása és feloldása
Szekció neve “iframe-ek blokkolása és feloldása”<?phpfunction cmplz_edit_iframe_tags( $iframe_tags ) { $iframe_tags[] = 'my-blocked-url.com'; unset( $iframe_tags['my-un-blocked-url.com'] ); return $iframe_tags;}add_filter( 'cmplz_known_iframe_tags', 'cmplz_edit_iframe_tags' );A videót tartalmazó elem osztálya
Szekció neve “A videót tartalmazó elem osztálya”<?phpfunction cmplz_edit_video_class( $class ) { $class .= ' my-class'; return $class;}add_filter( 'cmplz_video_class', 'cmplz_edit_video_class' );A blokkolt tartalmon megjelenő szöveg
Szekció neve “A blokkolt tartalmon megjelenő szöveg”<?phpfunction cmplz_edit_blocked_content_text( $text ) { $text = 'Ez a tartalom blokkolva van.'; return $text;}add_filter( 'cmplz_accept_cookies_blocked_content', 'cmplz_edit_blocked_content_text' );A dokumentum HTML-megjegyzése
Szekció neve “A dokumentum HTML-megjegyzése”<?phpfunction cmplz_edit_document_comment( $comment ) { $comment = 'my-comment'; return $comment;}add_filter( 'cmplz_document_comment', 'cmplz_edit_document_comment' );A dokumentum HTML-kimenete
Szekció neve “A dokumentum HTML-kimenete”Átadja a HTML-t, a dokumentum típusát (például cookie-policy) és az oldal azonosítóját.
<?phpfunction cmplz_edit_document_html( $html, $type, $post_id ) { // itt módosíthatod a HTML-t return $html;}add_filter( 'cmplz_document_html', 'cmplz_edit_document_html', 10, 3 );A dokumentum CSS-e
Szekció neve “A dokumentum CSS-e”<?phpfunction cmplz_edit_custom_document_css( $custom_css, $type, $post_id ) { // itt módosíthatod a CSS-t return $custom_css;}add_filter( 'cmplz_custom_document_css', 'cmplz_edit_custom_document_css', 10, 3 );A sütisáv beállításai (például a „Bővebben” hivatkozás)
Szekció neve “A sütisáv beállításai (például a „Bővebben” hivatkozás)”A sávbeállítások tömbjét a cmplz_cookiebanner_settings szűrő adja át. Régebbi leírásokban ezt cmplz_cookie_settings néven találod, de ebben a verzióban csak a cmplz_cookiebanner_settings létezik. A módosítandó tömbelem kulcsát előbb írasd ki (var_dump( $output )), mielőtt felülírod.
<?phpfunction cmplz_edit_cookie_settings( $output ) { // itt módosíthatod a sávbeállítás tömbjét return $output;}add_filter( 'cmplz_cookiebanner_settings', 'cmplz_edit_cookie_settings' );A visszavonási hivatkozás HTML-je
Szekció neve “A visszavonási hivatkozás HTML-je”<?phpfunction cmplz_edit_revoke_link( $html ) { // itt módosíthatod a visszavonási hivatkozás HTML-jét return $html;}add_filter( 'cmplz_revoke_link', 'cmplz_edit_revoke_link' );Egyedi helyőrző szolgáltatásonként
Szekció neve “Egyedi helyőrző szolgáltatásonként”Átadja a jelenlegi (alapértelmezett) helyőrzőt, a típust (például youtube) és az eredeti forrást.
<?phpfunction cmplz_edit_placeholder( $new_src, $type, $original_src ) { // itt adhatsz vissza másik helyőrző-útvonalat return $new_src;}add_filter( 'cmplz_placeholder', 'cmplz_edit_placeholder', 10, 3 );Az alapértelmezett helyőrzőkép
Szekció neve “Az alapértelmezett helyőrzőkép”<?phpfunction cmplz_edit_default_placeholder( $placeholder ) { $placeholder = 'my-placeholder-url'; return $placeholder;}add_filter( 'cmplz_default_placeholder', 'cmplz_edit_default_placeholder' );Készült: