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
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
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