バックエンドのedit-comments.phpセクションのauthorカラムの値を修正することは可能ですか?フック?コメント投稿者のメールのmailtoフィールドを件名と本文を含むように変更したい。 2、3か月前に誰かがどこで言ったかがわかったのは確かですが、二度と見つけることができません。
これが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 ) );
}
そのため、おそらくcomment_email
フィルタを探しているでしょう。
更新:
これは件名と本文を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 );
}
これはcomment_email
ページで、edit-comments.php
フィルタが適用されるたびに最初のesc_url()
をターゲットにすることに注意してください。
それがEメール部分のものであることを確認するためにmailtoチェックを追加しました。