Hinzufügen von benutzerdefinierten Spalten zu benutzerdefinierten Beitragstypen
-
-
Ich habe dieselbe Fragegestellt (undbeantwortet) (einschließlich der Frage,wie sie sortierbargemacht werden kann): http://wordpress.stackexchange.com/questions/253680/add-custom-column-to-custom-post-type-overview-in-Backendi asked (and answered) the same question (including how to make them sortable): http://wordpress.stackexchange.com/questions/253680/add-custom-column-to-custom-post-type-overview-in-backend
- 0
- 2017-01-23
- beta
-
2 Antworten
- Stimmen
-
- 2017-01-23
Die Hooks zum Erstellenbenutzerdefinierter Spalten und der zugehörigen Datenfüreinen benutzerdefinierten Beitragstyp sind
manage_{$post_type}_posts_columns
verwalten undmanage_{$post_type}_posts_custom_column
wobei{$post_type}
der Name desbenutzerdefinierten Beitragstypsist.In diesem Beispiel aus der Dokumentation wird die Autorenspalteentfernt undeine Taxonomie- und Metadatenspalte hinzugefügt:
// Add the custom columns to the book post type: add_filter( 'manage_book_posts_columns', 'set_custom_edit_book_columns' ); function set_custom_edit_book_columns($columns) { unset( $columns['author'] ); $columns['book_author'] = __( 'Author', 'your_text_domain' ); $columns['publisher'] = __( 'Publisher', 'your_text_domain' ); return $columns; } // Add the data to the custom columns for the book post type: add_action( 'manage_book_posts_custom_column' , 'custom_book_column', 10, 2 ); function custom_book_column( $column, $post_id ) { switch ( $column ) { case 'book_author' : $terms = get_the_term_list( $post_id , 'book_author' , '' , ',' , '' ); if ( is_string( $terms ) ) echo $terms; else _e( 'Unable to get author(s)', 'your_text_domain' ); break; case 'publisher' : echo get_post_meta( $post_id , 'publisher' , true ); break; } }
The hooks to create custom columns and their associated data for a custom post type are
manage_{$post_type}_posts_columns
andmanage_{$post_type}_posts_custom_column
respectively, where{$post_type}
is the name of the custom post type.This example from the documentation removes the author column and adds a taxonomy and meta data column:
// Add the custom columns to the book post type: add_filter( 'manage_book_posts_columns', 'set_custom_edit_book_columns' ); function set_custom_edit_book_columns($columns) { unset( $columns['author'] ); $columns['book_author'] = __( 'Author', 'your_text_domain' ); $columns['publisher'] = __( 'Publisher', 'your_text_domain' ); return $columns; } // Add the data to the custom columns for the book post type: add_action( 'manage_book_posts_custom_column' , 'custom_book_column', 10, 2 ); function custom_book_column( $column, $post_id ) { switch ( $column ) { case 'book_author' : $terms = get_the_term_list( $post_id , 'book_author' , '' , ',' , '' ); if ( is_string( $terms ) ) echo $terms; else _e( 'Unable to get author(s)', 'your_text_domain' ); break; case 'publisher' : echo get_post_meta( $post_id , 'publisher' , true ); break; } }
-
Dankefür diesen Haken !!!Dasistbrilliant!!Esgibt keine klare Dokumentation zum Stackoverflow !!!: D Prost KumpelThank you for this hook!!! This is brilliant!! There's no clear documentation on stackoverflow!!! :D Cheers mate
- 1
- 2019-05-30
- Rodrigo Zuluaga
-
Gibtes keine Möglichkeit,die Spaltennummerfestzulegen?wie `column_index [2]`.Weil die custom_column am Ende der Spalteerscheint.isn't there any option to set the column number? like `column_index[2]`. Because the custom_column appears at the end of the column.
- 0
- 2019-06-21
- Dilip Gupta
-
@DilipGupta $ columnsistein Array,das Sieneu anordnen können,bevor Siees zurückgeben@DilipGupta $columns is an array, you can reorder before you return it
- 1
- 2019-07-16
- fogx
-
- 2017-01-23
Ichbin nicht sicher,obes sich um standardmäßigebenutzerdefinierte Metadaten handelt,die Sie als Spalten anzeigenmöchten,aber Sie können dieses kostenlose Plugin verwenden,mit dem Sie Spalten hinzufügen können,umbenutzerdefinierte Felder anzuzeigen. https://wordpress.org/plugins/codepress-admin-columns/
In der Pro-Version können Sie diesen Spalten sogar Filterung,Sortierung und Inline-Bearbeitung hinzufügen.
I'm not sure if it default custom meta data that you want to show as columns, but you could consider to use this free plugin that allows you to add columns to display custom fields. https://wordpress.org/plugins/codepress-admin-columns/
The pro version even allows you to add filtering, sorting and inline edit to those columns.
-
VERWENDE NICHT!Wird Ihre Websitebrechen: Schwerwiegender PHP-Fehler: AC () (zuvor deklariertin [redigiert] \\ wp-content \\theme \\ [redigiert] \\functions.php: 628)in [redigiert] \\ wp-content \\plugins \ kannnichterneut deklariert werden\ codepress-admin-columns \\ api.phpin Zeile 9DO NOT USE! Will break your site: PHP Fatal error: Cannot redeclare AC() (previously declared in [redacted]\\wp-content\\themes\\[redacted]\\functions.php:628) in [redacted]\\wp-content\\plugins\\codepress-admin-columns\\api.php on line 9
- 0
- 2018-11-06
- Peter Konga-Kamau
-
@ PeterKionga-Kamau Diesistein Kompatibilitätsproblemmit Ihrem spezifischen Thema.Der von Ihnen veröffentlichte Fehler wirdbei einem Standard-WP-Thema (z. B. 20)nicht angezeigt.Ichbenutze das Plugin auchmit dem Divi Theme undfindees sehrnützlich@PeterKionga-Kamau this is a compatibility-issue with your specific theme. The error you posted will not appear with a default WP theme (such as twentytwenty); I also use the plugin with the Divi Theme and find it quite useful
- 0
- 2019-10-08
- Philipp
-
Gibtesnichteine Art Namespace oder die Verwendung weniger allgemeiner Funktionsnamen,die verwendet werden könnten,um dies zu vermeiden?Isn't there some kind of namespacing or use of less generic function names that could be used to avoid this?
- 0
- 2019-10-09
- Peter Konga-Kamau
Ich habe das schoneinmalgemacht,aberich habe den Namen des Hakens vergessen und kannihnnirgendwofinden ...
Ich versuche,einige benutzerdefinierte Spaltenin die Listeeinesbenutzerdefinierten Beitragstypsim Administrator aufzunehmen.
Klicken Siebeispielsweiseim Administrator auf Artikel ,um dorteine benutzerdefinierte Spalte hinzuzufügen.