Oszlopok hozzáadása WordPress-ben a bejegyzéslistázó nézetekhez előnézeti képe

Oszlopok hozzáadása WordPress-ben a bejegyzéslistázó nézetekhez

| Olvasási idő: 2 perc

Adj egyedi oszlopokat a WordPress admin felületének bejegyzéslistázó nézeteihez - ha bizonyos mezők tartalmát a bejegyzés megnyitása nélkül is látni szeretnéd, ez a snippet neked való.

Több esetben is szükséged lehet erre a lehetőségre - nézzünk is két elképzelt lehetőséget: 

  • szeretnéd, ha mindegyik bejegyzésedhez tartozó képet anélkül tudnál megnézni (vagy ellenőrizni, hogy van-e hozzá kiemelt kép választva), hogy megnyitnád a bejegyzésszerkesztő felületet, 
  • valamilyen egyedi mező tartalmát szeretnéd kiíratni egy újabb oszlopban.

Először is nézzük, hogy hogyan tudod az első esetben felmerült igényt kielégíteni - hozz létre egy fájlt az mu-plugins mappában, custom-columns-for-posts.php néven, az alábbi tartalommal: 

php
<?php
/*
Plugin Name: Custom columns in WP admin
Plugin URI: https://www.webmenedzser.hu
Description: This plugin will add custom columns to the "Posts" view
Version: 1.0
Author: Radics Ottó
Author URI: https://www.webmenedzser.hu
License: GPLv3
*/

function add_featured_image_column_for_posts( $columns ) {
    $columns['featured_image'] = __( 'Featured image' );

    return $columns;
}
add_filter( 'manage_posts_columns', 'add_featured_image_column_for_posts' );

Mentés és frissítés után láthatod, hogy a Bejegyzés menüpont alatti nézetben egy újabb oszlop jelent meg - egyelőre érdemi tartalom nélkül. 

Megjegyzés: ha ugyanezt egy custom post type esetében szeretnéd elérni, cseréld le a manage_posts_columns hook-ot a manage_[post_type]_posts_columns-ra, ahol [post_type] a custom post type neve. Bővítsük a fenti kódot az alábbira: 

php
<?php
/*
Plugin Name: Custom columns in WP admin
Plugin URI: https://www.webmenedzser.hu
Description: This plugin will add custom columns to the "Posts" view
Version: 1.0
Author: Radics Ottó
Author URI: https://www.webmenedzser.hu
License: GPLv3
*/

function add_featured_image_column_for_posts( $columns ) {
    $columns['featured_image'] = __( 'Featured image' );

    return $columns;
}
add_filter( 'manage_posts_columns', 'add_featured_image_column_for_posts' );

function fill_featured_image_column_for_posts( $column, $post_id ) {
    if ( $column === 'featured_image' ) {
        echo get_the_post_thumbnail( $post_id, [38, 38] );
    }
}
add_action( 'manage_posts_custom_column', 'fill_featured_image_column_for_posts', 10, 2);

A második függvény felel az érdemi tartalommal való "feltöltésért": amikor az oszlopokat tartalommal tölti fel a WordPress és a featured_image nevű oszlophoz ér (így neveztük el az oszlopunkat az előző függvényben), akkor ott kiíratja a get_the_post_thumbnail() függvény visszatérési értékét - ami éppen a bejegyzés kiemelt képének <img> tagje lesz. Megjelent a kép, ügyesek vagyunk! :) 

Menjünk tovább a következő esetünkre, ahol valamilyen egyedi mező tartalmát szeretnénk kiíratni az oszlopban. Nagyon sokat nem kell változtatnunk a fenti kódon, csak az "oszlopban meghívott" függvényt kell lecserélnünk, ebben az esetben a get_post_meta()-ra, és a MEZŐ_NEVE helyett megadni a mezőnk nevét:

php
<?php
/*
Plugin Name: Custom columns in WP admin
Plugin URI: https://www.webmenedzser.hu
Description: This plugin will add custom columns to the "Posts" view
Version: 1.0
Author: Radics Ottó
Author URI: https://www.webmenedzser.hu
License: GPLv3
*/

function add_featured_image_column_for_posts( $columns ) {
    $columns['featured_image'] = __( 'Featured image' );

    return $columns;
}
add_filter( 'manage_posts_columns', 'add_featured_image_column_for_posts' );

function fill_featured_image_column_for_posts( $column, $post_id ) {
    if ( $column === 'featured_image' ) {
        echo get_post_meta($post_id, 'MEZŐ_NEVE', true);
    }
}
add_action( 'manage_posts_custom_column', 'fill_featured_image_column_for_posts', 10, 2);

Ha mindent jól csináltunk, megjelent a bejegyzéshez tartozó mező értéke az oszlopban. 

Gratulálok - megint kiváltottál egy plugint!