web-dev-qa-db-fra.com

Modifier column_author dans WP_Comments_List_Table

Est-il possible de modifier les valeurs de la colonne author dans la section edit-comments.php du backend? Un crochet? Je souhaite modifier le champ mailto du courrier électronique du commentateur afin d'inclure un sujet et un corps. Je suis à peu près sûr d'avoir trouvé où quelqu'un avait dit qu'il y avait un moyen de le faire il y a quelques mois, mais je ne le retrouve pas.

5

Voici comment la partie email est affichée par la méthode WP_Comments_List::column_author():

/* This filter is documented in wp-includes/comment-template.php */
$email = apply_filters( 'comment_email', $comment->comment_author_email, $comment );

if ( ! empty( $email ) && '@' !== $email ) {
    printf( '<a href="%1$s">%2$s</a><br />', esc_url( 'mailto:' . $email ), esc_html( $email ) );
}

vous êtes donc probablement à la recherche du filtre comment_email.

Mise à jour:

Voici un hack pour ajouter un sujet et un corps à la partie mailto:

add_filter( 'comment_email', function( $email )
{
    // Target the edit-comments.php screen
    if( did_action( 'load-edit-comments.php' ) )
        add_filter( 'clean_url', 'wpse_258903_append_subject_and_body' );       

    return $email;
} );

function wpse_258903_append_subject_and_body( $url )
{
    // Only run once
    remove_filter( current_filter(), __FUNCTION__ );

    // Adjust to your needs:
    $args = [ 'subject' => 'hello', 'body' => 'world' ];

    // Only append to a mailto url
    if( 'mailto' === wp_parse_url($url, PHP_URL_SCHEME )  )
        $url .= '?' . build_query( $args );

    return esc_url( $url );
}

Notez que ceci cible la première esc_url() après chaque application du filtre comment_email, sur la page edit-comments.php.

Nous avons ajouté une vérification mailto pour nous assurer que c'est bien pour la partie email.

5
birgire