Kategóriák létrehozása a médiaelemekhez WordPress-ben előnézeti képe

Kategóriák létrehozása a médiaelemekhez WordPress-ben

| Olvasási idő: 2 perc

Biztos vagyok benne, hogy sokan hiányolják a WordPress Médiatárából a lehetőséget, hogy a képeket valamilyen módon kategorizálni tudjuk. Valójában ez a lehetőség nincs is olyan messze tőlünk, mint amennyire gondoljuk. 

Az igazat megvallva: ezt a témát valójában már boncolgattuk, de akkor nem említettem, hogy ugyanazt meg lehet csinálni a képekkel is - pedig de, hiszen a feltöltött médiaelemek valójában "post-ok", a post type-juk pedig attachment. Ezekből az információkból kiindulva - a korábbi bejegyzésben olvasottakat felhasználva - már meg is tudjuk oldani a feladatot. Hozzunk létre egy fájlt az mu-plugins mappában, mondjuk add_taxonomies_to_attachments.php néven, az alábbi tartalommal: 

php
<?php
/*
Plugin Name: Tags for attachments
Plugin URI: https://www.webmenedzser.hu
Description: Add tags & categories to attachments
Version: 1.0
Author: Radics Ottó
Author URI: https://www.webmenedzser.hu
License: GPL2
*/

function add_taxonomies_to_attachments() {
    register_taxonomy(
        'attachment_category',
        'attachment',
        array(
            'label' => __( 'Médiaelem kategória' ),
            'rewrite' => array( 'slug' => 'attachment-taxonomy' ),
            'hierarchical' => true,
            'show_admin_column' => true,
            'show_in_rest' => true,
        )
    );
}

add_action( 'init', 'add_taxonomies_to_attachments' );

Igen, jól látjátok: ez "ugyanaz" a kód, mint amit a custom taxonomies bejegyzésben is használtunk, annyi eltéréssel, hogy a második paraméter (az object_type) itt most attachment. A kódrészlet finomhangolására (hierarchical, show_admin_column, stb.) ugyanazok vonatkoznak, mint amit az előző bejegyzésben írtam. 

Amit viszont ott nem írtam, de a képekkel kapcsolatban (is) hasznos lehet: egy taxonómia nem csak egy bejegyzéstípushoz kapcsolódhat. Mit jelent ez? Röviden azt, hogy kialakíthatsz az egész oldaladon átívelő rendezési szempontokat, kiterjesztve azt több post type-ra is. Mikor lehet ez hasznos? Ha például címkéket használsz: a posztokat és a képeket ugyanazokkal a címkékkel láthatod el (de a bejegyzéshez tartozó képnek nem feltétlenül kell ugyanazokkal a címkékkel rendelkeznie, mint a bejegyzésnek). Nézzünk erre egy példát, az unikornisokkal korábban már használt kódrészletet fogjuk továbbvinni: 

php
<?php
/*
Plugin Name: Unikornis taxonomy plugin
Plugin URI: https://www.webmenedzser.hu
Description: Unikornis kategóriák létrehozása a *unicorn* CPT-hez
Version: 1.0
Author: Radics Ottó
Author URI: https://www.webmenedzser.hu
License: GPL2
*/

function create_unicorn_types_tax() {
    register_taxonomy(
        'unicorn_category',
        ['unicorn', 'attachment'],
        array(
            'label' => __( 'Unikornis kategória' ),
            'rewrite' => array( 'slug' => 'unicorn-type' ),
            'hierarchical' => false,
            'show_admin_column' => true,
            'show_in_rest' => true,
        )
    );
}

add_action( 'init', 'create_unicorn_types_tax' );

Látszik, hogy a második paraméter egy tömb (ebben a formában csak a PHP 7.0+ szereti, akinek az alatti van, használja az array('unicorn', 'attachment') formát), aminek több eleme van: ilyenkor az összes, a tömbben szereplő bejegyzéstípushoz hozzárendeljük a taxonómiát. Egy fontos változtatást még végeztem: a hierarchical-t átállítottam false-ra, ezzel kategóriák helyett címkéket létrehozva. A példánál maradva: innentől kezdve egy bejegyzésed unikornis címkéi lehetnek mondjuk a cuki, a rózsaszín, és a belehalok, az egyes unikornisok képei pedig külön-külön (vagy akár egyben is) tartalmazhatják ezeket. 

Ma is jó voltál: plugin nélkül, pusztán néhány sornyi kóddal kialakítottál az oldaladon egy bejegyzésektípusokon átívelő taxonómiát - yaaay! :) 

p.s.: Csurgának köszi a tippet, hogy hogyan jelenjen meg Gutenbergben is az egyedi címkénk!