wake-up-neo.net

Hinzufügen einer benutzerdefinierten Spalte in der Liste der benutzerdefinierten Beiträge

Ich möchte eine Spalte (z. B. E-Mail senden) in meiner Liste mit benutzerdefinierten Posts (Büchern) haben. In jeder Zeile sollte sich ein Button (Senden) befinden und wenn ich darauf klicke, möchte ich eine E-Mail senden.

Ich habe gesehen, ist ein Haken manage_posts_custom_column zum Hinzufügen einer benutzerdefinierten Spalte, aber dieser Haken fügt nur Post-Meta als Spalten wie das gezeigte Bild usw. hinzu.

Wie das geht, helft mir bitte.


Bildschirmfoto

 enter image description here 

2
Bhuvnesh Gupta

Hinzufügen einer neuen Spalte zur books Post-Tabelle

Hier können wir die Filter verwenden

manage_{$post->post_type}_posts_custom_column
manage_{$post->post_type}_posts_columns

oder für den Beitragstyp books:

manage_books_posts_custom_column
manage_books_posts_columns

Hier ist ein Beispiel, wie wir eine Schaltfläche für jede Zeile in der Spalte send_email anzeigen können:

/**
 * Books Post Table: Display a utton in each row in the 'send_email' column
 */
add_action( 'manage_books_posts_custom_column', function ( $column_name, $post_id ) 
{
    if ( $column_name == 'send_email')
        printf( '<input type="button" value="%s" />', esc_attr( __( 'Send Email' ) ) );

}, 10, 2 );

Um die Spalte send_email hinzuzufügen, können wir Folgendes verwenden:

/**
 * Books Post Table: Add the 'send_email' column
 */
add_filter('manage_books_posts_columns', function ( $columns ) 
{
    if( is_array( $columns ) && ! isset( $columns['send_email'] ) )
        $columns['send_email'] = __( 'Send Email' );     
    return $columns;
} );

Wir könnten auch die Spaltenbreite begrenzen mit:

/**
 * Limit the 'send_email' column width
 */
add_action( 'admin_print_styles-edit.php', function()
{        
    echo '<style> .column-send_email { width: 100px; }</style>';
} );

Hier ist eine Beispielausgabe:

 button 

Sie müssen dann implementieren, wie die Schaltfläche funktioniert.

ps: Ich habe den zweiten Teil aus meiner Antwort entfernt, da dieser Teil Ihrer Frage besser als neue separate Frage gedient wäre.

7
birgire