web-dev-qa-db-ja.com

投稿編集画面でコメントメタフィールドにコメントメタフィールドを追加する


コメント形式のカスタムフィールドはほとんどありません。これらのフィールドをコメントメタボックスに追加するにはどうすればよいですか。質問を3つの部分に分けます。

1)どのようにurlフィールドを削除し、クイック編集フォームにコメントするためのカスタムコメントフィールドを追加しますか?

comments metabox 

2)コメント追加フォームにカスタムフィールドを追加するにはどうすればいいですか?

comment add form 

3)メタボックスにコメントするためにここにカスタムメタ情報を追加したいですか?

comment list metabox 

3
anton

残念ながらフック:

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

wp_ajax_get-comments呼び出し内に構築された コメント後 リストテーブルには使用できません。このテーブルは、authorとcommentの2つの列のみで構成されています。著者、アバター、電子メール、URL、IPのデータが最初の列に表示されます。

一方、私たちは次のようなハックを使うことができます。

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 );

各行の最初の列にデータを表示します。例えばここでget_user_meta()呼び出しを使用してください。

カスタム入力フィールドを quick-edit commentフォームに追加する方法については、次のようなハックを使用することもできます。

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;
} );

post.php画面でreplycontentエディタをターゲットにします。これはさらなる制限を必要とするかもしれません。このフィールドは、コメントコンテンツエディタの下に表示されます。

custom field 

それからedit_commentアクションにフックしてそれをユーザーmetaに保存することが可能です。

これは Add comment 形式でも機能するはずですが、現在の値をカスタムフィールドに挿入するにはJavaScriptが必要な場合があります。上記の方法の代わりに、JavaScriptを使用して、コメントフィールドにカスタムフィールドを挿入することも可能です。

あなたはCSSでURLフィールドを隠すことを試みることができます:

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

うまくいけば、あなたはこれをさらに調整することができます。

0
birgire