私は私のコメントにカスタムフィールドを追加するために カスタムコメント プラグインを使用しています。
このプラグインを使用すると、訪問者が自分のFacebook、Twitterなどをコメントに含めることができるように、コメント用のフィールドをさらに定義できます。
期待通りにすべてが機能しています。ただし、管理者側でコメントを編集してもカスタムフィールドが表示されません。現在のところ、デフォルトのフィールドname
、email
、url
、comment
のみが表示されます。
このコメントカスタムフィールドを表示するために使用できるアクションやフィルタはありますか?
コメント編集画面にメタボックスを挿入することは、投稿タイプ画面と同じです。しかし、幅の広い柱の上にしか配置できません。サイドバーは他の箱を受け入れないようです。
投稿されたデータをキャプチャするために、私はフィルタ comment_edit_redirect
のみを見つけました。
これはプラグインで動作するように調整する必要があります。この例のカスタムフィールドはmeta_comment_field
です。コードのコメントを見る:
// SAVE COMMENT META
// only found this hook to process the POST
add_filter( 'comment_edit_redirect', 'save_comment_wpse_82317', 10, 2 );
// META BOX
add_action( 'add_meta_boxes', 'add_custom_box_wpse_82317' );
/**
* Save Custom Comment Field
* This hook deals with the redirect after saving, we are only taking advantage of it
*/
function save_comment_wpse_82317( $location, $comment_id )
{
// Not allowed, return regular value without updating meta
if ( !wp_verify_nonce( $_POST['noncename_wpse_82317'], plugin_basename( __FILE__ ) )
&& !isset( $_POST['meta_comment_field'] )
)
return $location;
// Update meta
update_comment_meta(
$comment_id,
'meta_comment_field',
sanitize_text_field( $_POST['meta_comment_field'] )
);
// Return regular value after updating
return $location;
}
/**
* Add Comment meta box
*/
function add_custom_box_wpse_82317()
{
add_meta_box(
'section_id_wpse_82317',
__( 'Meta Comment Meta' ),
'inner_custom_box_wpse_82317',
'comment',
'normal'
);
}
/**
* Render meta box with Custom Field
*/
function inner_custom_box_wpse_82317( $comment )
{
// Use nonce for verification
wp_nonce_field( plugin_basename( __FILE__ ), 'noncename_wpse_82317' );
$c_meta = get_comment_meta( $comment->comment_ID, 'meta_comment_field', true );
echo "<input type='text' id='meta_comment_field' name='meta_comment_field' value='",
esc_attr( $c_meta ),
"' size='25' />";
}