Tovább a tartalomhoz

Más elemek, taxonómiák és csoportok

Feltételek WordPress-elemek, kiemelt kép, kategóriák, címkék, egyéni taxonómiák és csoportmezők alapján, valamint a mezőcsoportokon kívüli elemek kezelése.

A feltétel nemcsak Meta Box mezőkre hivatkozhat, hanem a szerkesztő más elemeire is. Így egy meta boxot vagy mezőt függővé tehetsz például a bejegyzéstípustól, a szülőoldaltól, a bejegyzés azonosítójától vagy a kategóriáktól.

HTML-elem esetén az első paraméterbe a mezőazonosító helyett az elem azonosítóját írd. A beépített WordPress-elemek:

Paraméter Jelentés
post_ID A bejegyzés azonosítója
page_template Az oldalsablon
parent_id A szülő bejegyzés azonosítója
post_format A bejegyzés formátuma

Például egy meta box (vagy mező) csak akkor jelenik meg, ha az oldalsablon a template-custom.php:

'visible' => [ 'page_template', 'template-custom.php' ],

A kiemelt kép különleges elem. Mezőneve _thumbnail_id, és ha nincs beállítva, a WordPress -1 értéket ad neki. A bővítmény észleli a kiemelt kép változását, ezért feltételt is köthetsz hozzá.

Mező megjelenítése, ha nincs kiemelt kép:

'visible' => [ '_thumbnail_id', '=', '-1' ],

Mező megjelenítése, ha van kiemelt kép:

'visible' => [ '_thumbnail_id', '!=', '-1' ],

Mező megjelenítése csak akkor, ha a kiemelt kép egy bizonyos, például 123 azonosítójú kép:

'visible' => [ '_thumbnail_id', '=', '123' ],

A bővítmény a mezőcsoportokon kívüli elemeket is el tudja rejteni. Ha például a .custom-div elemet el akarod rejteni, amikor a brand azonosítójú mező értéke Microsoft, használd az rwmb_outside_conditions szűrőt:

add_filter( 'rwmb_outside_conditions', function ( $conditions ) {
$conditions['.custom-div'] = [
'hidden' => [ 'brand', 'Microsoft' ],
];
return $conditions;
} );

A kulcs bármilyen CSS-választó lehet, például #custom-id vagy .my-class .children.

Ha a feltétel olyan beviteli elemtől függ, amely nem Meta Box mező, az azonosítóját # jellel add meg:

add_filter( 'rwmb_outside_conditions', function ( $conditions ) {
$conditions['.custom-div'] = [
'hidden' => [ '#input-id', 'value' ],
];
return $conditions;
} );

Az MB Tabs bővítménnyel létrehozott fülek nem rendes mezők vagy meta boxok, ezért az elrejtésükhöz is az rwmb_outside_conditions szűrő kell. A feltétel a fül HTML-osztályára hivatkozik.

Vegyünk egy meta boxot két fülekkel, Biography és Interest néven:

add_filter( 'rwmb_meta_boxes', function ( $meta_boxes ) {
$meta_boxes[] = [
'title' => 'MB Tabs 2',
'tabs' => [
'bio' => 'Biography',
'interest' => 'Interest',
],
'tab_style' => 'box',
'fields' => [
[
'name' => 'Bio',
'id' => 'bio',
'type' => 'textarea',
'tab' => 'bio',
],
[
'name' => 'Interest',
'id' => 'interest',
'type' => 'textarea',
'tab' => 'interest',
],
],
];
return $meta_boxes;
} );

A fülek HTML-je ehhez hasonló, minden fül rwmb-tab-<fül azonosítója> osztályt kap:

<ul class="rwmb-tab-nav">
<li class="rwmb-tab-bio rwmb-tab-active" data-panel="bio"><a href="#">Biography</a></li>
<li class="rwmb-tab-interest" data-panel="interest"><a href="#">Interest</a></li>
</ul>

Az Interest fül elrejtéséhez, ha a bejegyzés formátuma „aside”, add a fül osztályát a szűrőhöz:

add_filter( 'rwmb_outside_conditions', function ( $conditions ) {
$conditions['.rwmb-tab-interest'] = [
'hidden' => [ 'post_format', 'aside' ],
];
return $conditions;
} );

Az első fül elrejtésekor a hozzá tartozó panelt is el kell rejteni, a következő fül panelját pedig meg kell jeleníteni:

add_filter( 'rwmb_outside_conditions', function ( $conditions ) {
$conditions['.rwmb-tab-bio, .rwmb-tab-panel-bio'] = [
'hidden' => [ 'post_format', 'aside' ],
];
$conditions['.rwmb-tab-panel-interest'] = [
'visible' => [ 'post_format', 'aside' ],
];
return $conditions;
} );

A kategóriához a post_category az első paraméter:

'visible' => [ 'post_category', 'in', [ 4, 5, 6 ] ]

Alapértelmezés szerint kategóriaazonosítókkal dolgozik. Ha inkább a kategória szlugját használnád, tedd elé a slug: előtagot:

'visible' => [ 'slug:post_category', 'in', [ 'fashion', 'gaming', 'technology' ] ]

A címkék támogatása csak a blokkszerkesztőben (Gutenberg) érhető el. Az első paraméter a tags:

'visible' => [ 'tags', 'in', [ 4, 5, 6 ] ]

A kategóriától eltérően a címkéknél kizárólag címkeazonosítót használhatsz.

Egyéni taxonómiánál az első paraméter tax_input[taxonómia_szlug]:

'hidden' => [ 'tax_input[product]', 'in', [ 5, 6, 7 ] ],

A kategóriához hasonlóan itt is használhatsz szlugot:

'hidden' => [ 'slug:tax_input[product]', '!=', 'drones' ]

A bővítmény jQuery-vel ellenőrzi a mező azonosítóját és értékét. Nem klónozható csoport almezőjének tényleges azonosítója csoportazonosító_mezőazonosító alakú, a feltételben ezt kell megadnod:

[
'id' => 'group',
'type' => 'group',
'fields' => [
[
'id' => 'brand',
'name' => 'Márka',
'type' => 'select',
'options' => [
'apple' => 'Apple',
'google' => 'Google',
'microsoft' => 'Microsoft',
],
],
[
'id' => 'apple_products',
'name' => 'Melyik Apple-terméket szereted?',
'type' => 'radio',
'options' => [
'iPhone' => 'iPhone',
'iPad' => 'iPad',
'Macbook' => 'Macbook',
],
'visible' => [ 'group_brand', '=', 'apple' ],
],
],
],

Klónozható csoportnál a feltétel csak az adott klónon belül fut, ezért az almezők azonosítóját nem kell átírnod.

Készült:

Tiszteletben tartjuk a magánszférádat

Sütiket használunk a böngészési élmény javítására és a forgalom elemzésére. Az analitika csak akkor indul, ha engeded. Adatvédelmi irányelvek, Sütitájékoztató.

Sütibeállítások