J'utilise le Commentaire personnalisé plugin pour ajouter des champs personnalisés à mes commentaires.
Ce plugin vous permet de définir plus de champs de commentaires pour permettre à vos visiteurs d'inclure leurs comptes Facebook, Twitter et ... dans leurs commentaires.
Tout fonctionne comme prévu. Cependant, les champs personnalisés ne s'affichent pas lorsque je modifie un commentaire du côté de l'administrateur. Actuellement, seuls les champs par défaut sont affichés: name
, email
, url
, comment
.
Existe-t-il une action ou un filtre pouvant être utilisé pour afficher les champs personnalisés de commentaires?
L'insertion d'une méta-boîte dans l'écran d'édition de commentaire est identique à celle dans les écrans de types d'articles. Mais il ne peut être placé que sur la colonne large, la barre latérale ne semble pas accepter les autres cases.
Pour capturer les données en cours de publication, je n'ai trouvé que le filtre comment_edit_redirect
.
Cela doit être adapté pour fonctionner avec le plugin. Le champ personnalisé dans cet exemple est meta_comment_field
. Voir les commentaires du code:
// 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' />";
}