# Hookok: dinamikus tartalom és kimenet

> A Slider Revolution stabil, harmadik fél számára szánt action és filter hookjai a dinamikus tartalomhoz, a poststreamekhez és a megjelenített HTML-hez.

A Slider Revolution összesen 105 stabil, külső fejlesztőknek szánt hookot ad. Ez a fejezet az első két csoportot írja le: a dinamikus tartalmat és a poststreameket, valamint a kimenet (renderelés) hookjait. A többi csoport a [modul- és diaéletciklus](https://hub.hellowp.io/hu/plugins/revslider/fejlesztoknek-hookok-eletciklus-import-export/) és a [betöltés, beállítások és kiegészítők](https://hub.hellowp.io/hu/plugins/revslider/fejlesztoknek-hookok-betoltes-beallitasok/) fejezetekben van.

A **filter** hook visszatérési értéket vár (mindig add vissza a módosított értéket), az **action** hook nem. Ahol a leírás `$slider` vagy `$slide` objektumot említ, az a `RevSliderSlider`, illetve `RevSliderSlide` osztály példánya; a kimeneti objektum `RevSlider7Output`.

## Dinamikus tartalom és poststreamek (18 hook)

### Meta- és szövegcserék

| Hook | Típus | Mit csinál | Paraméterek |
|---|---|---|---|
| `rev_slider_insert_meta` | filter | A beszúrt `%meta%` helyőrző értékét szűri egy bejegyzéshez. Szöveget ad vissza. | `$text`, `$post_id` |
| `revslider_getExcerptById` | filter | Egy dinamikus dián használt, generált kivonatot szűri. | `$excerpt`, `$post`, `$limit` (a kért hossz) |
| `revslider_mod_meta` | filter | A bejegyzésadatból épített rétegbe kerülő meta értéket módosítja. | `$text`, `$post_id`, `$post` |
| `revslider_mod_stream_meta` | filter | A stream (közösségi, feed) adatból épített rétegbe kerülő meta értéket módosítja. | `$text`, `$slider_id`, `$stream_type`, `$post_data` |
| `sr_modify_layer_text` | filter | Egy réteg szövegét módosítja egy adott bejegyzéshez, amikor a dinamikus dia épül (helyőrző-csere). | `$text`, `$post_id`, `$slide` |
| `sr_streamline_post_data_post` | filter | Egy dinamikus dia bejegyzésenkénti adatát egészíti ki vagy módosítja. Ez az elsődleges hook egyedi meta- és mezőkötésekhez, a WooCommerce és az Events Manager integráció is ezt használja. Visszatérés: a bejegyzésadat tömb a hozzáadott mezőkkel. | `$post_data`, `$data` (nyers bejegyzéssor), `$metas`, `$slider` |

Példa: saját `%reading_time%` helyőrző a rétegszövegben.

```php
add_filter('sr_modify_layer_text', function($text, $post_id, $slide){
	return str_replace('%reading_time%', my_reading_time($post_id), $text);
}, 10, 3);
```

Példa: egyedi `subtitle` mező a diaadatban.

```php
add_filter('sr_streamline_post_data_post', function($post_data, $data, $metas, $slider){
	$post_data['subtitle'] = get_post_meta($data['ID'], 'subtitle', true);
	return $post_data;
}, 10, 4);
```

### Lekérdezések és bejegyzéslisták

| Hook | Típus | Mit csinál | Paraméterek |
|---|---|---|---|
| `revslider_get_latest_posts` | filter | A „legutóbbi bejegyzések” streamhez használt lekérdezést szűri. Visszatérés: lekérdezési tömb. | `$args`, `$post_id` (a hivatkozott bejegyzés) |
| `revslider_get_popular_posts` | filter | A „népszerű bejegyzések” streamhez használt lekérdezést szűri. | `$args`, `$post_id` |
| `revslider_get_related_posts` | filter | A „kapcsolódó bejegyzések” (aktuális bejegyzés) streamhez használt lekérdezést szűri. | `$query`, `$post_id` |
| `revslider_get_posts` | filter | Az összeállított `WP_Query` argumentumtömböt szűri közvetlenül a poststream lekérdezése előtt. | `$query`, `$slider_id` |
| `revslider_get_posts_by_category` | filter | A bejegyzés-, WooCommerce- vagy eseményalapú diastream teljes lekérdezési argumentumkészletét szűri a lekérdezés előtt. Az `$args` kulcsai: `slider_id`, `cat_id`, `sort_by`, `direction`, `max_posts`, `post_types`, `taxonomies`, `addition`, `type`. | `$args`, `$slider` |
| `revslider_get_posts_by_categories` | filter | A kategóriaalapú streamlekérdezés lefutása utáni bejegyzéseket szűri. | `$post`, `$slider` |
| `revslider_set_posts_list` | filter | A szokásos poststream végleges bejegyzéslistáját szűri. | `$posts`, `$slider_id` |
| `revslider_set_posts_list_gal` | filter | A galériastream végleges bejegyzéslistáját szűri. | `$posts`, `$slider_id` |
| `revslider_slide_ignore_taxonomies` | filter | Azon taxonómiák listáját szűri, amelyeket a bejegyzésekből épülő diák és helyettesítések figyelmen kívül hagynak. | `$taxonomies`, `$slider` |

Példa: csak a publikált bejegyzések kerüljenek a streambe.

```php
add_filter('revslider_get_posts', function($query, $slider_id){
	$query['post_status'] = 'publish';
	return $query;
}, 10, 2);
```

Példa: meta alapú szűrés a bejegyzés-, termék- vagy eseménystreamben.

```php
add_filter('revslider_get_posts_by_category', function($args, $slider){
	$args['addition']['meta_query'][] = ['key' => '_featured', 'value' => 'yes'];
	return $args;
}, 10, 2);
```

### Streamadatok

| Hook | Típus | Mit csinál | Paraméterek |
|---|---|---|---|
| `revslider_pre_mod_stream_data` | filter | A bejegyzésgyűjteményt szűri azelőtt, hogy diastream-adattá alakulna. | `$posts`, `$sourcetype`, `$slider_id` |
| `revslider_post_mod_stream_data` | filter | A bejegyzésgyűjteményt szűri azután, hogy diastream-adattá alakult. | `$posts`, `$sourcetype`, `$slider_id` |
| `revslider_streamline_stream_data` | filter | Egyedi forrástípushoz rövidre zárja vagy megadja a streamadatot. Alapértéke `false`; ha ettől eltérőt adsz vissza, az felváltja a beépített streamelést az adott forrásnál. | `$return`, `$data`, `$sourcetype`, `$additions`, `$slider` |

## Kimenet és renderelés (18 hook)

### Modul HTML-je és azonosítói

| Hook | Típus | Mit csinál | Paraméterek |
|---|---|---|---|
| `revslider_add_slider_to_stage_pre` | action | Lefut közvetlenül azelőtt, hogy a modul bekerül az oldal kimenetébe. | `$slider_id` (azonosító vagy alias), `$output` |
| `revslider_add_slider_to_stage_post` | action | Lefut közvetlenül azután, hogy a modul bekerült az oldal kimenetébe. | `$slider_id`, `$output` |
| `revslider_add_slider_base_post` | action | Lefut a modul alapmarkupjának elkészülte után. | `$output` |
| `revslider_get_html_id` | filter | A modul tárolóelemének HTML-azonosítóját szűri. | `$html_id`, `$output`, `$raw` (nyers azonosítót kértek-e) |
| `revslider_html_output` | filter | A modul teljes generált HTML-jét szűri közvetlenül a kiírás előtt. | `$content`, `$output` |
| `revslider_add_youtube_api_html` | filter | A YouTube-háttér használatakor beszúrt YouTube API HTML-t vagy szkriptet szűri. | `$html`, `$output` |

```php
add_filter('revslider_html_output', function($content, $output){
	return $content . '<!-- rendered by my theme -->';
}, 10, 2);
```

### Rétegek

| Hook | Típus | Mit csinál | Paraméterek |
|---|---|---|---|
| `revslider_add_layer_classes` | filter | A réteg burkolóelemére kerülő CSS-osztályokat adja hozzá vagy módosítja. | `$classes`, `$layer`, `$slide`, `$slider` |
| `revslider_layer_content` | filter | Egy (nem videó) réteg végleges HTML-jét szűri. A `$html_layer` a visszaadandó érték, a `$html_layer_original` az eredeti. | `$html_layer`, `$html_layer_original`, `$slider_id`, `$slide`, `$layer` |
| `revslider_modify_layer_text` | filter | Egy réteg szövegét módosítja renderelés közben. | `$text`, `$layer` |
| `rs_action_type` | filter | Egy rétegakció feloldott típusát szűri (például egyedi akció regisztrálásához). | `$action` |
| `rs_action_link_type` | filter | Egy rétegen lévő hivatkozásakció feloldott típusát szűri. | `$link_type` |

```php
add_filter('revslider_add_layer_classes', function($classes, $layer, $slide, $slider){
	$classes[] = 'my-layer';
	return $classes;
}, 10, 4);
```

### JavaScript és képek

| Hook | Típus | Mit csinál | Paraméterek |
|---|---|---|---|
| `revslider_fe_javascript_output` | action | Lefut, amikor a modul frontenden használt inicializáló JavaScriptje kiíródik. | `$slider`, `$html_id` |
| `revslider_pre_add_js` | action | Lefut a modul JavaScript-blokkjának kiírása előtt. | `$output` |
| `revslider_post_add_js` | action | Lefut a modul JavaScript-blokkjának kiírása után. | `$output` |
| `revslider_modify_slider_settings` | filter | A modulhoz kiírt JavaScript-beállításobjektumot módosítja nyomtatás előtt. | `$settings`, `$slider_id` |
| `sr_add_image_lists` | filter | További képeket ad az előtöltött képek listájához. | `$images`, `$output` |
| `sr_get_image_lists` | filter | Az előtöltésre összegyűjtött képek listáját szűri. | `$images`, `$output` |
| `sr_add_slide_background_image_url` | filter | Egy dia feloldott háttérkép-URL-jét szűri. | `$img`, `$slide`, `$output` |

Példa: a modul elrendezésének átállítása a JavaScript-beállításokban.

```php
add_filter('revslider_modify_slider_settings', function($settings, $slider_id){
	$settings['sliderLayout'] = 'fullwidth';
	return $settings;
}, 10, 2);
```
