Ondersteuning » Code oplossingen gezocht » Aanpassen comment-formulier

  • Goedemorgen, ik hoop dat ik hier wat hulp krijg voor mijn probleem. Het lijkt een lange post, maar om zo compleet mogelijk te zijn doe ik de code van de PHP bestanden er ook direct bij.

    Ik wil graag mijn comment-formulier aanpassen, ik heb wel dit gevonden, maar kom er eigenlijk gewoon niet uit:
    http://codex.wordpress.org/Styling_Theme_Forms
    http://codex.wordpress.org/Function_Reference/comment_form#.24args.

    Wat ik graag wil aanpassen:
    – e-mailadres moet wel zichtbaar worden;
    – het invulveld voor website (URL) wil ik verwijderen;
    – graag wil ik wel een extra veld toevoegen waar mensen een onderwerp mee kunnen geven aan hun reactie, dat onderwerp moet dan net als e-mailadres ook zichtbaar zijn.

    Hoe kan ik dit bereiken?

    Uit de WordPress installatie vind ik het document wp-comments-post.php en uit mijn Pagelines template vind ik het document comments.php, maar dit is voor mij geheimtaal.

    wp-comments-post.php

    <?php
    /**
     * Handles Comment Post to WordPress and prevents duplicate comment posting.
     *
     * @package WordPress
     */
    
    if ( 'POST' != $_SERVER['REQUEST_METHOD'] ) {
    	header('Allow: POST');
    	header('HTTP/1.1 405 Method Not Allowed');
    	header('Content-Type: text/plain');
    	exit;
    }
    
    /** Sets up the WordPress Environment. */
    require( dirname(__FILE__) . '/wp-load.php' );
    
    nocache_headers();
    
    $comment_post_ID = isset($_POST['comment_post_ID']) ? (int) $_POST['comment_post_ID'] : 0;
    
    $post = get_post($comment_post_ID);
    
    if ( empty($post->comment_status) ) {
    	do_action('comment_id_not_found', $comment_post_ID);
    	exit;
    }
    
    // get_post_status() will get the parent status for attachments.
    $status = get_post_status($post);
    
    $status_obj = get_post_status_object($status);
    
    if ( !comments_open($comment_post_ID) ) {
    	do_action('comment_closed', $comment_post_ID);
    	wp_die( __('Sorry, comments are closed for this item.') );
    } elseif ( 'trash' == $status ) {
    	do_action('comment_on_trash', $comment_post_ID);
    	exit;
    } elseif ( !$status_obj->public && !$status_obj->private ) {
    	do_action('comment_on_draft', $comment_post_ID);
    	exit;
    } elseif ( post_password_required($comment_post_ID) ) {
    	do_action('comment_on_password_protected', $comment_post_ID);
    	exit;
    } else {
    	do_action('pre_comment_on_post', $comment_post_ID);
    }
    
    $comment_author       = ( isset($_POST['author']) )  ? trim(strip_tags($_POST['author'])) : null;
    $comment_author_email = ( isset($_POST['email']) )   ? trim($_POST['email']) : null;
    $comment_author_url   = ( isset($_POST['url']) )     ? trim($_POST['url']) : null;
    $comment_content      = ( isset($_POST['comment']) ) ? trim($_POST['comment']) : null;
    
    // If the user is logged in
    $user = wp_get_current_user();
    if ( $user->exists() ) {
    	if ( empty( $user->display_name ) )
    		$user->display_name=$user->user_login;
    	$comment_author       = $wpdb->escape($user->display_name);
    	$comment_author_email = $wpdb->escape($user->user_email);
    	$comment_author_url   = $wpdb->escape($user->user_url);
    	if ( current_user_can('unfiltered_html') ) {
    		if ( wp_create_nonce('unfiltered-html-comment_' . $comment_post_ID) != $_POST['_wp_unfiltered_html_comment'] ) {
    			kses_remove_filters(); // start with a clean slate
    			kses_init_filters(); // set up the filters
    		}
    	}
    } else {
    	if ( get_option('comment_registration') || 'private' == $status )
    		wp_die( __('Sorry, you must be logged in to post a comment.') );
    }
    
    $comment_type = '';
    
    if ( get_option('require_name_email') && !$user->exists() ) {
    	if ( 6 > strlen($comment_author_email) || '' == $comment_author )
    		wp_die( __('<strong>ERROR</strong>: please fill the required fields (name, email).') );
    	elseif ( !is_email($comment_author_email))
    		wp_die( __('<strong>ERROR</strong>: please enter a valid email address.') );
    }
    
    if ( '' == $comment_content )
    	wp_die( __('<strong>ERROR</strong>: please type a comment.') );
    
    $comment_parent = isset($_POST['comment_parent']) ? absint($_POST['comment_parent']) : 0;
    
    $commentdata = compact('comment_post_ID', 'comment_author', 'comment_author_email', 'comment_author_url', 'comment_content', 'comment_type', 'comment_parent', 'user_ID');
    
    $comment_id = wp_new_comment( $commentdata );
    
    $comment = get_comment($comment_id);
    do_action('set_comment_cookies', $comment, $user);
    
    $location = empty($_POST['redirect_to']) ? get_comment_link($comment_id) : $_POST['redirect_to'] . '#comment-' . $comment_id;
    $location = apply_filters('comment_post_redirect', $location, $comment);
    
    wp_safe_redirect( $location );
    exit;

    comments.php

    <?php
    /**
     * COMMENTS
     *
     * The template for displaying Comments.
     *
     * @package     PageLines Framework
     * @since       1.0
     *
     * @link        http://www.pagelines.com/
     * @link        http://www.pagelines.com/tour
     *
     * @author      PageLines   http://www.pagelines.com/
     * @copyright   Copyright (c) 2012, PageLines   hello@pagelines.com
     *
     * @internal    last revised February 23, 2012
     * @version     2.1.1
     */
    
    if(!have_comments() && !comments_open())
    	return;
    
    ?>
    
    <div id="comments" class="wp-comments">
    	<div class="wp-comments-pad">
    	<?php 
    
    		/* Stop the rest of comments.php from being processed,
    		 * but don't kill the script entirely -- we still have
    		 * to fully load the template.
    		 */
    		if ( post_password_required() ){
    			printf('<p class="nopassword">%s</p></div></div>', __( 'This post is password protected. Enter the password to view any comments.', 'pagelines' ) );
    			return;
    
    		}
    
    		if ( have_comments() ) : ?>
    			<h3 id="comments-title"><?php
    			printf( _n( 'One Response to %2$s', '%1$s Responses to %2$s', get_comments_number(), 'pagelines' ),
    			number_format_i18n( get_comments_number() ), '<em>' . get_the_title() . '</em>' );
    			?></h3>
    
    			<ol class="commentlist">
    				<?php wp_list_comments(array('avatar_size' => 45)); ?>
    			</ol>
    			<?php if ( get_comment_pages_count() > 1 && get_option( 'page_comments' ) ) : // Are there comments to navigate through? ?>
    						<div class="navigation fix">
    							<div class="alignleft"><?php previous_comments_link( __( "<span class='meta-nav'>&larr;</span> Older Comments", 'pagelines' ) ); ?></div>
    							<div class="alignright"><?php next_comments_link( __( "Newer Comments <span class='meta-nav'>&rarr;</span>", 'pagelines' ) ); ?></div>
    						</div> <!-- .navigation -->
    			<?php endif; // check for comment navigation ?>
    
    <?php 	else : // or, if we don't have comments:
    
    			/* If there are no comments and comments are closed,
    			 * let's leave a little note, shall we?
    			 */
    			if ( ! comments_open() ) :
    		?>
    			<p class="nocomments"><?php _e('Comments are closed.', 'pagelines');?></p>
    		<?php endif; // end ! comments_open() ?>
    
    <?php
    		endif; // end have_comments() 
    
    	comment_form(); ?>
    	</div>
    </div>

    Ik hoop dat jullie mij kunnen helpen.

    Groet Willem

1 reactie aan het bekijken (van in totaal 1)
  • Thread starter Willem-Siebe

    (@siebje)

    Hoi, ik heb nog geen reactie ontvangen op mijn post. Is het een ongebruikelijk verzoek om het reactieformulier aan te passen? Ik hoop dat iemand mij kan helpen! Ik heb ook DSMguestbook geprobeerd alleen die geeft foutmelding (het debug aan om te voorkomen dat ik verouderde plugins gebruik). Ik neem aan dat het verstandig is om dan DSMguestbook niet te gebruiken?

    Groet Willem

1 reactie aan het bekijken (van in totaal 1)
  • Het onderwerp ‘Aanpassen comment-formulier’ is gesloten voor nieuwe reacties.