Meine Frage ist also so ziemlich das, was Sie auf dem Bild sehen. Wie kann ich in meinem benutzerdefinierten Beitragstyp "Produkte" eine zusätzliche Spalte wie SEO Yoast zu meiner Haupttabelle hinzufügen, die den Namen WP_List_Table trägt? Ich habe den Code herausgefunden, wie ich eine Nicht-Lagerbestands-Funktion bekomme, die angezeigt wird, abhängig davon, ob für den Artikel das Feld custom_field of "Out of Stock" auf true oder false gesetzt ist. Das ist kein Problem, aber wie kann ich diesen Bereich der Tabelle in meinem Code anvisieren. Ich würde davon ausgehen, dass es ein Filter wäre, nicht um sicherzugehen, wie das funktionieren würde, aber ich würde es wirklich schätzen, wenn mir jemand helfen kann.
Ich denke, Sie brauchen eine Reihe von Filtern und Aktionen, um benutzerdefinierte Spalten zu Post-Edit-Bildschirmen hinzuzufügen:
manage_edit-post_type_sortable_columns
verwenden.Mit diesem Code füge ich beispielsweise eine sortierbare Spalte mit Post-Hits-Informationen aus einem benutzerdefinierten Metafeld hinzu:
add_filter( 'manage_edit-post_columns', 'add_new_columns' );
add_filter( 'manage_edit-post_sortable_columns', 'register_sortable_columns' );
add_filter( 'request', 'hits_column_orderby' );
add_action( 'manage_posts_custom_column' , 'custom_columns' );
/**
* Add new columns to the post table
*
* @param Array $columns - Current columns on the list post
*/
function add_new_columns($columns){
$column_meta = array( 'hits' => 'Hits' );
$columns = array_slice( $columns, 0, 6, true ) + $column_meta + array_slice( $columns, 6, NULL, true );
return $columns;
}
// Register the columns as sortable
function register_sortable_columns( $columns ) {
$columns['hits'] = 'hits';
return $columns;
}
//Add filter to the request to make the hits sorting process numeric, not string
function hits_column_orderby( $vars ) {
if ( isset( $vars['orderby'] ) && 'hits' == $vars['orderby'] ) {
$vars = array_merge( $vars, array(
'meta_key' => 'hits',
'orderby' => 'meta_value_num'
) );
}
return $vars;
}
/**
* Display data in new columns
*
* @param $column Current column
*
* @return Data for the column
*/
function custom_columns($column) {
global $post;
switch ( $column ) {
case 'hits':
$hits = get_post_meta( $post->ID, 'hits', true );
echo (int)$hits;
break;
}
}