---
title: "WordPressi haakimiskohad ehk konksud ja filtrid"
canonical_url: "https://www.zone.ee/blogi/wordpressi-haakimiskohad-ehk-konksud-ja-filtrid/"
post_type: "post"
published: "2019-10-08T10:33:56+00:00"
modified: "2025-02-26T20:03:24+00:00"
author: "Peeter Marvet"
featured_image: "https://www.zone.ee/static/sites/2/2019/10/codeweek-hooks.webp"
taxonomies:
  category:
    - name: "Veebileht"
      url: "https://www.zone.ee/blogi/category/veebileht/"
  post_tag:
    - name: "Tehniline"
      url: "https://www.zone.ee/blogi/tag/tehniline/"
    - name: "WordPress"
      url: "https://www.zone.ee/blogi/tag/wordpress/"
  skills:
    - name: "Edasijõudnule"
      url: "https://www.zone.ee/blogi/skill/edasijoudnule/"
---

# WordPressi haakimiskohad ehk konksud ja filtrid

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!](https://www.meetup.com/Tallinn-WordPress-meetup/events/264744314/)

## Konks

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

![](https://www.zone.ee/static/sites/2/2019/10/header-php.png)

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`](https://developer.wordpress.org/reference/functions/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:

![](https://www.zone.ee/static/sites/2/2019/10/wtf-case.png)

Fuksi värvi pealkiri on postitusest [Kuidas kohandada WordPressi teemat ehk alamteema (child theme) kasutamine](https://www.zone.ee/blogi/2019/10/07/kuidas-kohandada-wordpressi-teemat-ehk-alamteema-child-theme-kasutamine/).
