標準のWordPressのコメントフォームアクションを置き換える方法はありますか。通常、これは次のようになります。
<form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform">
comments.phpを変更せずに何か特別なものに(つまりプラグインのために、エンドユーザーにテーマを編集させる必要はありません):
<form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" some_Java_script some_tag="some_value" method="post" id="commentform">
jQueryで簡単:
//first make sure you have jQuery on that page
add_action('wp_enqueue_scripts','make_sure_i_have_jquery');
function make_sure_i_have_jquery(){
if (!is_admin())
wp_enqueue_script( 'jquery' );
}
//then just change the url to you own
add_action('wp_footer','change_comment_form');
function make_sure_i_have_jquery(){
if (!is_admin() && (is_page() || is_single()))
echo '<script> $("#commentform").attr("action", "http://yourUrl.com"); </script>';
}
これをテーマのfunctions.phpまたは自分が開発しているプラグインに貼り付けて、http://yourUrl.com
を必要なURLに変更してください。
これをあなたのテーマのfunctions.phpに貼り付けてください。
add_action( 'comment_form_before', 'my_comment_form_before' );
function my_comment_form_before() {
ob_start();
}
add_action( 'comment_form_after', 'my_comment_form_after' );
function my_comment_form_after() {
$html = ob_get_clean();
$html = preg_replace(
'/wp-comments-post.php"/',
'wp-comments-post.php" some_Java_script some_tag="some_value"',
$html
);
echo $html;
}