Custom Post Types – Listing im Backend anpassen – Teil 1

Die Listings im Backend (z. B. Auflistung der Beiträge oder Seiten) liefern erste Informationen zu den entsprechenden Inhalten. Der folgende Beitrag soll anhand eines Beispiels zeigen, wie man das Listing um weitere Informationen erweitern kann.

Beim Anlegen eines neuen Custom Post Types wurden für die Frontend-Ausgabe diverse Custom Fields erstellt.
Nun soll eine entsprechende Auswahl in das Listing übernommen werden.

Abbildung 1 zeigt das Standard-Listing.

Abb. 1 – Darstellung ohne Anpassung
custom-post-types-wp-list-table-before

Einfach ausgedrückt ist Code 1 (Filter Reference) für die Spalten(köpfe) (column header) und Code 2 (Action Reference) für die Spalten(werte) (column value) zuständig.
Code 1

// filter
manage_${post_type}_posts_columns

Code 2

// action
manage_${post_type}_posts_custom_column

Code 3

add_filter('manage_cako-links_posts_columns', 'cako_links_columns', 4);
add_action('manage_cako-links_posts_custom_column', 'cako_link_post_column', 4, 2);

function cako_links_columns($columns){
   $columns['cako-link-post-id'] = __('ID');
   $columns['cako-link-post-url'] = __('URL');
   $columns['cako-link-post-thumb'] = __('Thumb');
   return $columns;
}

function cako_link_post_column($column, $postID){
   
   $link_url = get_post_meta(get_the_ID(), 'ck_link_url', true);
   $link_text = get_post_meta(get_the_ID(), 'ck_link_text', true);
   
   if($column === 'cako-link-post-id'):
      echo $postID;
   elseif($column === 'cako-link-post-url' && ($link_url && $link_text)):
      echo '<a href="' . $link_url . '" target="_blank">'. $link_text . '</a>';
   elseif($column === 'cako-link-post-thumb'):
      echo get_the_post_thumbnail( $post_id, array(50,50) );
   endif;
}

Dank des oben dargestellten Codes (Code 3) hat sich das Listing wie folgt verändert.
Neben Titel und Datum werden nun auch die ID, URL und das Beitragsbild abgebildet.

Abb. 2 – Darstellung mit Anpassung
custom-post-types-wp-list-table-after


Quellen:
http://blog.kulturbanause.de/2014/05/ids-von-seiten-und-beitraegen-im-wordpress-backend-anzeigen/
http://wpsnipp.com/index.php/functions-php/add-post-id-to-posts-pages-admin-columns/
http://codex.wordpress.org/Plugin_API/Filter_Reference/manage_$post_type_posts_columns
http://codex.wordpress.org/Plugin_API/Action_Reference/manage_$post_type_posts_custom_column

Schreibe einen Kommentar

* Pflichtfelder