カスタムテーブルを使ってその内容を保存するメディアプラグインを書いています。 (例えば、ワードプレスが添付データを保存している投稿テーブルではありません)。今私はそれにコメントを追加するためにデフォルトのワードプレスのコメントシステムを使用する方法を探しています。 (これらのコメントは通常のコメントテーブルには含まれませんが、カスタムテーブルにも含まれます。
私は二つのことが必要です。
私は知っていますが、これは厄介な考えですが、投稿/添付ファイルの表は私が必要とするものを制限しすぎています。何か案は?
wp_list_comments()
にはフィルタもフックもないので、少し難しいかもしれませんが、comments_array
filter hookを使うことができます
add_filter('comments_array','my_custom_comments_list');
function my_custom_comments_list($comments, $post_id){
//if criteria are met
//pull your comments from your own table
//in to an array and return it.
return $my_comments;
//else return $comments
}
preprocess_comment
フィルタフックを使用するのが「コメント送信と処理を傍受する」チップの回答が最善の方法ですが、WordPressフォームがデフォルトテーブルにもコメントを挿入することを避けることができるので、削除するにはwp_insert_comment
アクションフックを使用できます。挿入直後のデフォルトテーブルからのコメント
add_action('wp_insert_comment','remove_comment_from_default_table');
function remove_comment_from_default_table( $id, $comment){
//if criteria are met
//and the comment was inserted in your own table
//remove it from the default table:
wp_delete_comment($id, $force_delete = true);
}
preprocess_comment
フィルタフックを使ってみてください。
function my_handling_function( $comment_data ) {
// Here, do whatever you need to do with the comment
// modify it, pull data out of it to save somewhere
// or whatever you need to do
// just be sure to return $comment_data when you're done!
return $comment_data;
}
add_filter( 'preprocess_comment', 'my_handling_function' );