web-dev-qa-db-fra.com

URL d'action de formulaire personnalisé WordPress

Existe-t-il un moyen de remplacer l'action de formulaire de commentaires WordPress standard, qui ressemble généralement à ceci:

<form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform">

à quelque chose de personnalisé sans modifier comments.php (c'est-à-dire pour un plugin, de sorte que vous n'avez pas à demander aux utilisateurs finaux de modifier leurs thèmes):

<form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" some_Java_script some_tag="some_value" method="post" id="commentform">

1
Zixion

simple avec 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>';
    }

collez simplement ceci dans le functions.php ou le plugin de votre thème et développez-le, puis remplacez http://yourUrl.com par l'URL de votre choix.

2
Bainternet

collez ceci dans le functions.php de votre thème:

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;
}
0
llgruff