# Bejegyzések widget fejlesztőknek

> A Bejegyzések widget műveletei (action) és szűrői (filter) kódpéldákkal, és a portfólióelemek megjelenítése egy szűrővel.

A [Bejegyzések widget](https://hub.hellowp.io/hu/plugins/ultimate-elementor/kozlemenyek-bejegyzesek/) kimenetét PHP-kóddal is alakíthatod. A kódot a gyermektéma `functions.php` fájljába vagy egy saját bővítménybe tedd, hogy a téma frissítése ne törölje.

## Paraméterek

A műveletek és szűrők az alábbi paraméterekből használnak néhányat:

| Paraméter | Jelentése |
|---|---|
| `$settings` | Az adott widget teljes beállítástömbje. Ebből feltételeket is építhetsz a kiválasztott beállítások szerint. |
| `$post_id` | A ciklusban éppen kirajzolt bejegyzés azonosítója; akkor hasznos, ha bejegyzésspecifikus adatot kérnél le. |
| `$query` | A `WP_Query` objektum. |
| `$classes` | Az osztályok tömbje. |
| `$date_format` | A dátum formátuma, például „F j, Y”. |

## Műveletek (action)

A műveletekkel a widget kimenetének adott pontjára szúrhatsz be saját HTML-t. Az `add_action` utolsó két paramétere a prioritás és a paraméterek száma.

| Művelet | Mikor fut | Paraméterek |
|---|---|---|
| `uael_posts_before_outer_wrap` | a külső burkoló elején | `$settings` |
| `uael_posts_after_outer_wrap` | a külső burkoló végén | `$settings` |
| `uael_posts_before_wrap` | a bejegyzések burkolójának elején | `$settings` |
| `uael_posts_after_wrap` | a bejegyzések burkolójának végén | `$post_id`, `$settings` |
| `uael_single_post_before_wrap` / `uael_single_post_after_wrap` | egy bejegyzés burkolója előtt / után | `$post_id`, `$settings` |
| `uael_single_post_before_inner_wrap` / `uael_single_post_after_inner_wrap` | a bejegyzés belső burkolója előtt / után | `$post_id`, `$settings` |
| `uael_single_post_before_content_wrap` / `uael_single_post_after_content_wrap` | a bejegyzés tartalmi burkolója előtt / után | `$post_id`, `$settings` |
| `uael_single_post_before_thumbnail` / `uael_single_post_after_thumbnail` | a bélyegkép előtt / után | `$post_id`, `$settings` |
| `uael_single_post_before_meta` / `uael_single_post_after_meta` | a meta előtt / után | `$post_id`, `$settings` |
| `uael_single_post_before_terms` / `uael_single_post_after_terms` | a taxonómiák előtt / után | `$post_id`, `$settings` |
| `uael_single_post_before_comments` / `uael_single_post_after_comments` | a hozzászólások előtt / után | `$post_id`, `$settings` |
| `uael_single_post_before_date` / `uael_single_post_after_date` | a dátum előtt / után | `$post_id`, `$settings` |
| `uael_single_post_before_author` / `uael_single_post_after_author` | a szerző előtt / után | `$post_id`, `$settings` |
| `uael_single_post_before_title` / `uael_single_post_after_title` | a cím előtt / után | `$post_id`, `$settings` |
| `uael_single_post_before_excerpt` / `uael_single_post_after_excerpt` | a kivonat előtt / után | `$post_id`, `$settings` |
| `uael_single_post_before_cta` / `uael_single_post_after_cta` | a felhívás cselekvésre elem előtt / után | `$post_id`, `$settings` |

Példa: szöveg a külső burkoló elejére, és egy sor minden cím után.

```php
function summary_wrap_before( $settings ) {
    echo '<div>A bejegyzések burkolójának elején vagyok.</div>';
}
add_action( 'uael_posts_before_outer_wrap', 'summary_wrap_before', 10, 1 );

function title_after( $post_id, $settings ) {
    echo '<div>Ez a cím után jelenik meg.</div>';
}
add_action( 'uael_single_post_after_title', 'title_after', 10, 2 );
```

## Szűrők (filter)

### A lekérdezés módosítása

```php
add_filter( 'uael_posts_query_args', function( $query, $settings ) {
    // Itt módosíthatod a lekérdezést.
    return $query;
}, 10, 2 );
```

### Osztályok hozzáadása a burkolókhoz

```php
add_filter( 'uael_wrapper_classes', function( $classes ) {
    array_push( $classes, 'my-new-class' );
    return $classes;
} );

add_filter( 'uael_outer_wrapper_classes', function( $classes ) {
    array_push( $classes, 'my-new-class123' );
    return $classes;
} );
```

### A bejegyzés hivatkozásának módosítása

```php
add_filter( 'uael_single_post_link', function( $link, $post_id, $settings ) {
    $link .= '&utm_campaign=post_grid';
    return $link;
}, 10, 3 );
```

### Dátumformátum és eseménydátum

```php
add_filter( 'uael_post_the_date_format', function( $date, $post_id, $date_format ) {
    return $date;
}, 10, 3 );

// Az Esemény kinézet dátuma.
add_filter( 'uael_post_event_date', function( $date, $post_id, $date_format ) {
    return $date;
}, 10, 3 );
```

### A meta elemek sorrendje

A tömb az alapértelmezett sorrendet adja, az elemek felcserélhetők:

```php
add_filter( 'uael_post_meta_sequence', function( $sequence ) {
    return array( 'author', 'date', 'comments', 'cat', 'tag' );
} );
```

### A taxonómia jelvény linkelése

Az `yes` érték linkké teszi a jelvényt, a `no` megszünteti a linket.

```php
add_filter( 'uael_link_taxomony_badge', function( $value ) {
    $value = 'yes';
    return $value;
} );
```

### Szűrhető fülek és jelvények

```php
add_filter( 'uael_posts_filterable_tabs', function( $filters, $settings ) {
    return $filters;
}, 10, 2 );

add_filter( 'uael_posts_tax_filter', function( $terms ) {
    return $terms;
}, 10, 2 );
```

### A kategória meta és az AJAX-lapozás eltolása

```php
add_filter( 'uael_posts_meta_category', function( $terms, $settings ) {
    return $terms;
}, 10, 2 );

add_filter( 'uael_post_offset_top', function( $offset_top ) {
    return $offset_top;
}, 10, 2 );
```

Az `uael_post_offset_top` szűrő azt a távolságot módosítja, amelyre az oldal az AJAX-os lapozás után felgörget.

## Portfólióelemek megjelenítése

Ha a **Bejegyzés típusa** listából a portfóliót választod, de a widget az „Sajnáljuk, nem találtunk bejegyzést. Próbálj meg másik keresést.” jellegű figyelmeztetést írja ki, az a miatt van, hogy az Astra portfólió elemeit a widget alapból kizárja. Egy szűrővel felülbírálhatod ezt, és minden portfólióelem megjelenik.

Használj gyermektémát, hogy a téma frissítése ne törölje a módosítást.

1. A WordPress vezérlőpultján nyisd meg a **Megjelenés → Témaszerkesztő** menüt.
2. A jobb oldali legördülő listából válaszd ki a gyermektémát.
3. Nyisd meg a `functions.php` fájlt.
4. Illeszd be a következő sort:

   ```php
   add_filter( 'astra_portfolio_exclude_portfolio_items', '__return_false' );
   ```

5. Kattints a **Fájl frissítése** gombra.

A szűrő a portfólióelemek kizárását kapcsolja ki, így a widget minden elemet megjelenít.
