web-dev-qa-db-fra.com

Commentaires personnalisés - réponse parent/imbriquée

Je fais un thème personnalisé et ai édité comments.php, mais je ne parviens pas à faire enregistrer les commentaires en tant que réponse à un autre commentaire. J'ai réussi à afficher l'ID parent du commentaire sous forme de valeur masquée dans le code source, mais il ne l'enregistre pas en conséquence dans la base de données (à la place, il enregistre toujours le commentaire_parent à 0). En outre, l'adresse IP du commentateur n'est pas enregistrée pour une raison quelconque (comment_author_IP apparaît sous la forme ":: 1"). Voici le code que j'ai jusqu'à présent:

    <?php
    if ( post_password_required() )
        return;
?>

    <div id="comments" class="comments-area">

    <?php // You can start editing here -- including this comment!

    $fields = array(
    'author'               => '<p class="comment-form-author"><label for="author">' . __( 'Name', 'domainreference' ) . '</label> ' . ( $req ? '<span class="required">*</span>' : '' ) . '<input id="author" name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) . '" size="30"' . $aria_req . ' /></p>',
    'email'                => '<p class="comment-form-email"><label for="email">' . __( 'Email', 'domainreference' ) . '</label> ' . ( $req ? '<span class="required">*</span>' : '' ) . '<input id="email" name="email" type="text" value="' . esc_attr(  $commenter['comment_author_email'] ) . '" size="30"' . $aria_req . ' /></p>'
    );

    $defaults = array(
    'fields'               => apply_filters( 'comment_form_default_fields', $fields ),
    'comment_field'        => '<p class="comment-form-comment"><label for="comment">' . _x( 'Comment', 'noun' ) . '</label><textarea id="comment" name="comment" cols="45" rows="8" aria-required="true"></textarea></p><p class="comment-form-math"><label for="math">' . __( 'five plus two', 'domainreference' ) . '</label> ' . ( $req ? '<span class="required">*</span>' : '' ) . '<input id="math" name="math" type="text" value="' . esc_attr( $commenter['math'] ) . '" size="30"' . $aria_req . ' /></p></p><input type=\'hidden\' name=\'comment_post_ID\' value=\'\' id=\'comment_post_ID\' /><input type=\'hidden\' name=\'comment_parent\' id=\'comment_parent\' value=\''.$comment_parent.'\' />',
    'must_log_in'          => '<p class="must-log-in">' .  sprintf( __( 'You must be <a href="%s">logged in</a> to post a comment.' ), wp_login_url( apply_filters( 'the_permalink', get_permalink( ) ) ) ) . '</p>',
    'logged_in_as'         => '<p class="logged-in-as">' . sprintf( __( 'Logged in as <a href="%1$s">%2$s</a>. <a href="%3$s" title="Log out of this account">Log out?</a>' ), admin_url( 'profile.php' ), $user_identity, wp_logout_url( apply_filters( 'the_permalink', get_permalink( ) ) ) ) . '</p>',
    'comment_notes_before' => '<p class="comment-notes">' . __( 'Your email address will not be published. Required fields are marked *' ) . ( $req ? $required_text : '' ) . '</p>',
    'comment_notes_after'  => '',
    'id_submit'            => 'submit',
    'title_reply'          => __( 'Leave a Reply' ),
    'title_reply_to'       => __( 'Leave a Reply to %s' ),
    'comment_form_title'       => __( 'Leave a Reply', 'Leave a Reply to %s' ),
    'cancel_reply_link'    => __( 'Cancel reply' ),
    'label_submit'         => __( 'Post Comment' )
    );

    comment_form($defaults);
    ?>

</div><!-- #comments .comments-area -->
4
Pamela

Si votre problème d’IP est résolu, c’est génial. Avez-vous essayé cette option dans Word

setting-> discussion-> Activer les commentaires threadés (imbriqués)?

Peut résoudre votre problème de base de données aussi bien si fonctionne.

1
Cid Ubaid