it-swarm.com.de

Hinzufügen von Kommentar-Metafeldern zur Kommentar-Metabox auf dem Post-Edit-Bildschirm


Ich habe nur wenige benutzerdefinierte Felder in Kommentarform. Wie kann ich diese Felder zur Metabox für Kommentare hinzufügen? Ich teile meine Frage in 3 Teile:

1) Wie entferne ich das URL-Feld und füge benutzerdefinierte Kommentarfelder hinzu, um das Schnellbearbeitungsformular zu kommentieren?

 comments metabox 

2) Wie füge ich benutzerdefinierte Felder zum Kommentar hinzu?

 comment add form 

3) Heiß, benutzerdefinierte Metainformationen hinzuzufügen, um Metabox hier zu kommentieren?

 comment list metabox 

3
anton

Leider sind die Haken:

manage_{$this->screen->id}_columns
manage_{$this->screen->id}_sortable_columns
manage_comments_custom_column

sind nicht für die Tabelle post-comments list verfügbar, die im wp_ajax_get-comments-Aufruf erstellt wurde. Diese Tabelle besteht nur aus zwei Spalten: Autor und Kommentar. Die Daten für Autor, Avatar, E-Mail, URL und IP werden in der ersten Spalte angezeigt.

Wir können auf der anderen Seite einen Hack verwenden wie:

add_filter( 'get_comment_author_IP', function( $comment_author_IP, $comment_ID, $comment )
{
    if( doing_action( 'wp_ajax_get-comments' ) )
        echo 'Some Custom Text <br/>';

    return $comment_author_IP;
}, 10, 3 );

um in der ersten Spalte einige Daten für jede Zeile anzuzeigen. Wir könnten z. benutze hier einen get_user_meta() call.

In Bezug darauf, wie wir benutzerdefinierte Eingabefelder zum Schnellbearbeitung Kommentarformular hinzufügen können, können wir auch einen Hack wie diesen verwenden:

add_filter( 'the_editor', function( $html )
{   
    if( did_action( 'load-post.php' ) && false !== strpos( $html, 'id="replycontent"' ) )
        $html .= sprintf( 
            '<br/> %s <input type="text" name="newcomment_myphone" value="%s">',
            esc_html__( 'Phone', 'wpse' )
        );

    return $html;
} );

wo wir den replycontenteditor auf dem post.php bildschirm anvisieren. Dies muss möglicherweise weiter eingeschränkt werden. Das Feld wird unter dem Kommentarinhaltseditor angezeigt:

 custom field 

Es sollte dann möglich sein, sich in die Aktion edit_comment einzuhängen, um sie in der Benutzermeta zu speichern.

Dies sollte auch für das Kommentar hinzufügen Formular funktionieren, aber möglicherweise benötigen Sie Javascript, um den aktuellen Wert in das benutzerdefinierte Feld einzufügen. Ich bin mir sicher, dass es auch möglich ist, die benutzerdefinierten Felder mit Javascript in das Kommentarformular einzufügen, anstatt wie oben beschrieben vorzugehen.

Sie könnten versuchen, das URL-Feld mit CSS auszublenden:

#author-url, label[for="author-url"] {
    display:none;
}

Hoffentlich können Sie dies weiter anpassen.

0
birgire