WordPressi haakimiskohad ehk konksud ja filtrid

Peeter Marvet
RSS: Jaga:

WordPressis on kahte sorti haakimiskohti:

  • hook e. konks on nagu nagi, kuhu igaüks saab riputada oma täitmist vajavad funktsioonid;
  • filter võimaldab huvilistel andmeid mudida, reeglina enne väljastamist.

Konksudest ja filtritest räägib kolmapäeval, 09.10.2019 kell 19 algaval WordPressi meetupil ka ArÅ«nas Liuiza.
Tule kohale kuulama ja küsima!

Konks

Selle illustreerimiseks sobib alamteemade postituses olev näide, kus lisasin Google Analytics’i header.php koodi:

Kuna header.php sai kopeeritud alamteema kataloogi tuleb sellise laiendamise puhul arvestada, et kui põhiteemas see fail uueneb on vaja neid a) märgata b) käsitsi alamteemasse üle tuua.

Jätkusuutlikum lahendus on päise konks:

<?php wp_head(); ?>

See teeb täpselt ühte asja – kutsub välja kõik ennast wp_head konksu külge haakinud funktsioonid:

function wp_head() {
/**
* Prints scripts or data in the head tag on the front end.
*
* @since 1.5.0
*/
	do_action( 'wp_head' );
}

Praktikas haagivad ennast sinna kõik skriptid-CSSid-metaväljad jne (seejuures mõned nt JS ja CSS kasutades  spetsiaalseid konkse, mis ennast wp_head külge haagivad).

Sama analüütika-koodi saaksime lisada alamteema functions.php faili nii:

function petskratt_analytics() {
?>
	<!-- Global site tag (gtag.js) - Google Analytics -->
	<script async src="https://www.googletagmanager.com/gtag/js?id=UA-xxxxxx-1"></script>
	<script>
	  window.dataLayer = window.dataLayer || [];
	  function gtag(){dataLayer.push(arguments);}
	  gtag('js', new Date());
	
	  gtag('config', 'UA-xxxxxx-1');
	</script>
<?php
}

add_action('wp_head', 'petskratt_analytics', 1);

Kirjeldan funktsiooni ning haagin ta nime pidi add_action abil sobilikku kohta, viimane parameeter on prioriteet ehk vastavalt Google Analytics’i soovitusele tahaks nende jupp olla võimalikult <head> alguses. Päris esimeseks ei saa, aga need eelnevad meta-väljad ei ole ka kuidagi probleemiks.a

Nüüd võin ka Twenty Nineteen’i julgesti uuendada, minu alamteema muudab põhiteema ja WordPressi käitumist vastavalt parimale tavale.

Selliseid konkse on WordPressis umbes 800 – ja lisaks 1700 filtrit.

Filter

Konks on abiks, kui tahad ise midagi väljastada – aga mida teha juhul, kui tahaksid muuta mõne teise funktsiooni poolt väljastatavat? Näiteks prooviks postituse sisu kuvada AINULT SUURTÄHTEDEGA … või veel parem (jaburam) SuvaLIsE SuuRUsEGA.

Tegevuste ahel on selline:

  1. teema kutsub sobilikus kohas välja funktsiooni the_content()
  2. the_content() leiab andmebaasist postituse sisu, valmistab selle kuvamiseks ette… aga enne kuvamist pakub võimalust the_content filtri külge haakinud funktsioonidele seda muuta
  3. sinu funktsioon haagib ennast the_content filtri külge, teeb mida tahab ja tagastab tulemuse
add_filter( 'the_content', 'petskratt_rAndOmcASe' );
 
function petskratt_rAndOmcASe( $content ) {

	$str = str_split( strtolower( $content ) );

	foreach ( $str as &$char ) {
		if ( rand( 0, 1 ) ) {
			$char = strtoupper( $char );
		}
	}

	return implode( '', $str );
}

Ja tulemus näeb välja selline:

Fuksi värvi pealkiri on postitusest Kuidas kohandada WordPressi teemat ehk alamteema (child theme) kasutamine.

Populaarsed postitused

Partner soovitab: Automaatsed meilid, mida iga e-kaupleja peaks saatma

Partner soovitab: Automaatsed meilid, mida iga e-kaupleja peaks saatma

Smaily
 Meiliturundus on üks tõhusamaid strateegiaid soovitud tulemuste saavutamiseks – eriti siis, kui see on automatiseeritud. Hästi ajastatud ja sihitud...
Produktize.eu:  kuidas ehitada rahvusvahelist usaldusväärsust ja kasvatada turgu .EU domeeniga

Produktize.eu: kuidas ehitada rahvusvahelist usaldusväärsust ja kasvatada turgu .EU domeeniga

Nikita Tikhomirov
Eesti ärimaastikul tõusevad esile ettevõtted, kes ei piirdu vaid kohaliku turu teenindamisega, vaid mõtlevad suuremalt – sihtturgudele, brändi kuvandile...
Partner soovitab: Kuidas luua koduleht, mis kõnetab ideaalset klienti

Partner soovitab: Kuidas luua koduleht, mis kõnetab ideaalset klienti

Cathy Kask, Celeht.ee
Kas oled vahel tundnud, et su koduleht ei peegelda sind ega sinu ettevõtet? Nii palju on öelda, nii palju võimalusi – kuid lõpuks jääd siiski omaenda...
Xdebug seadistamine Zone veebimajutuses: PhpStorm

Xdebug seadistamine Zone veebimajutuses: PhpStorm

Arne Meier
Varasemalt on Zone blogis olnud juttu Xdebug kasutamisest nii Sublime Texti kui ka Visual Studio Code baasil. Kui eelmised näited käsitlevad seadistamist...