• I’m having a problem with version 2.1. If you’re not logged in the comments are not visible. For guests, the number of comments on a post is visible, but when you click to view them, you get the comments box and a message that says you must be logged in to post comments. See here: http://etsyglass.com/blog/

    I have no plugins activated except sidebar widgets and wp flickr widgets. I have none of the boxes checked in Options/Discussion/Before a Comment Appears. I don’t have it set to administrator must approve the comment. I don’t have any words in my blacklist.

    Any logged in user can see the comments – not just administrators, but if you’re not logged in, you can’t see them.

    The theme I’m using is Blue Zinfandel Squared Enhanced 2.0. Here is the code for the comments.php file:

    <?php // Do not delete these lines
    if ('comments.php' == basename($_SERVER['SCRIPT_FILENAME']))
    die ('Please do not load this page directly. Thanks!');
    if (!empty($post->post_password)) { // if there's a password
    if ($_COOKIE['wp-postpass_' . COOKIEHASH] != $post->post_password) { // and it doesn't match the cookie
    ?>
    <p class="nocomments">
    <?php _e("This post is password protected. Enter the password to view comments."); ?>
    <p>
    <?php
    return;
    }
    }
    /* This variable is for alternating comment background */
    $oddcomment = 'alt';
    ?>
    <div id="commentblock">
    <!--comments form -->
    <?php if ( get_option('comment_registration') && !$user_ID ) : ?>
    <p>You must be <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?redirect_to=<?php the_permalink(); ?>">logged in</a> to post a comment. </p>
    <?php else : ?>
    <!--comments area-->
    <?php if ($comments) : ?>
    <p><?php comments_number(__('No Comment'), __('1 Comment so far'), __('% Comments so far')); ?></p>
    <ol id="commentlist">
    <?php foreach ($comments as $comment) : ?>
    <li class="<?php echo $oddcomment; ?>" id="comment-<?php comment_ID() ?>">
    <?php comment_author_link()?> on
    <?php comment_date('F j, Y') ?>
    <?php comment_time()?>
    <?php edit_comment_link(__("Edit This"), ''); ?>
    <?php if ($comment->comment_approved == '0') : ?>
    <em>Your comment is awaiting moderation.</em>
    <?php endif; ?>
    <?php
    if(the_author('', false) == get_comment_author())
    echo "<div class='commenttext-admin'>";
    else
    echo "<div class='commenttext'>";
    comment_text();
    echo "</div>";
    ?>
    </li>
    <?php /* Changes every other comment to a different class */
    if ('alt' == $oddcomment){
    $oddcomment = 'standard';
    }
    else {
    $oddcomment = 'alt';
    }
    ?>
    <?php endforeach; /* end for each comment */ ?>
    </ol>
    <?php else : // this is displayed if there are no comments so far ?>
    <?php if ('open' == $post-> comment_status) : ?>
    <!-- If comments are open, but there are no comments. -->
    <?php else : // comments are closed ?>
    <!-- If comments are closed. -->
    <p class="nocomments">Comments are closed.</p>
    <?php endif; ?>
    <?php endif; ?>
    <?php /* if ('open' == $post-> comment_status) : */ ?>
    <?php /* endif; // If registration required and not logged in */ ?>
    <?php endif; // if you delete this the sky will fall on your head ?>
    <div id="commentsform">
    <form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform">
    <?php if ( $user_ID ) : ?>
    <p>Logged in as <a href="<?php echo get_option('siteurl'); ?>/wp-admin/profile.php"><?php echo $user_identity; ?></a>. <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?action=logout" title="<?php _e('Log out of this account') ?>"> Logout &raquo; </a> </p>
    <?php else : ?>
    <p><?php _e('Name ');?><?php if ($req) _e('(required)'); ?><br />
    <input type="text" name="author" id="s1" value="<?php echo $comment_author; ?>" size="30" tabindex="1" />
    </p>
    <p><?php _e('Email ');?><?php if ($req) _e('(required)'); ?><br />
    <input type="text" name="email" id="s2" value="<?php echo $comment_author_email; ?>" size="30" tabindex="2" />
    </p>
    <p><?php _e('Website');?><br />
    <input type="text" name="url" id="s3" value="<?php echo $comment_author_url; ?>" size="30" tabindex="3" />
    </p>
    <?php endif; ?>
    <!--<p>XHTML:</strong> You can use these tags: <?php echo allowed_tags(); ?></p>-->
    <p><?php _e('Speak your mind');?><br />
    <textarea name="comment" id="s4" cols="90" rows="10" tabindex="4"></textarea>
    </p>
    <p>
    <input name="submit" type="submit" id="hbutt" tabindex="5" value="Submit Comment" />
    <input type="hidden" name="comment_post_ID" value="<?php echo $id; ?>" />
    </p>
    <?php do_action('comment_form', $post->ID); ?>
    </form>
    </div>
    </div>

    I can’t figure out how to fix it. Help?

Viewing 3 replies - 1 through 3 (of 3 total)
  • Thread Starter lisk

    (@lisk)

    Okay, well, I fixed the problem but I’m now wondering what else I’ve disabled. I deleted these lines of code from the file (posted above):

    <?php if ( get_option(‘comment_registration’) && !$user_ID ) : ?>
    <p>You must be /wp-login.php?redirect_to=<?php the_permalink(); ?>”>logged in to post a comment. </p>
    <?php else : ?>
    and about 3/4 of the way down:
    <?php endif; ?>`

    But am I going to be spammed like crazy now? If so, is there a way to disallow unregistered users to post a comment but allow them to read the comments?

    Thread Starter lisk

    (@lisk)

    That code should read:

    <?php if ( get_option('comment_registration') && !$user_ID ) : ?>
    <p>You must be <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?redirect_to=<?php the_permalink(); ?>">logged in</a> to post a comment. </p>
    <?php else : ?>

    and about 3/4 of the way down:

    <?php endif; ?>

    I used this hack and all was well in the neighborhood, except that guests cannot post to my blog. I need them to be able to do that 🙂

Viewing 3 replies - 1 through 3 (of 3 total)
  • The topic ‘Help – Comments Invisible to Guests’ is closed to new replies.