Предыдущий пост показывается после отправки комментария - PullRequest
0 голосов
/ 07 декабря 2011

Что не так с моим кодом, что приводит к переходу страницы к предыдущему сообщению после отправки комментария?

Эта является веб-страницей.Вы можете попробовать, если хотите.

Это код от comments.php:

<?php

if (!empty($_SERVER['SCRIPT_FILENAME']) && 'comments.php' == basename($_SERVER['SCRIPT_FILENAME']))
    die ('Please do not load this page directly. Thanks!');

if ( post_password_required() ) { ?>
    This post is password protected. Enter the password to view comments.
<?php
    return;
}
?>

<?php if ( have_comments() ) : ?>

<h2 id="comments"><?php comments_number('No Responses', 'One Response', '% Responses' );?></h2>

<div class="navigation">
    <div class="next-posts"><?php previous_comments_link() ?></div>
    <div class="prev-posts"><?php next_comments_link() ?></div>
</div>

<ol class="commentlist">
    <?php wp_list_comments(); ?>
</ol>

<div class="navigation">
    <div class="next-posts"><?php previous_comments_link() ?></div>
    <div class="prev-posts"><?php next_comments_link() ?></div>
</div>

<?php else : // this is displayed if there are no comments so far ?>

<?php if ( comments_open() ) : ?>
    <!-- If comments are open, but there are no comments. -->

 <?php else : // comments are closed ?>
    <p>Comments are closed.</p>

<?php endif; ?>

<?php endif; ?>

<?php if ( comments_open() ) : ?>

<div id="respond">

<h2><?php comment_form_title( 'Leave a Reply', 'Leave a Reply to %s' ); ?></h2>

<div class="cancel-comment-reply">
    <?php cancel_comment_reply_link(); ?>
</div>

<?php if ( get_option('comment_registration') && !is_user_logged_in() ) : ?>
    <p>You must be <a href="<?php echo wp_login_url( get_permalink() ); ?>">logged in</a> to post a comment.</p>
<?php else : ?>

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

    <?php if ( is_user_logged_in() ) : ?>

        <p>Logged in as <a href="<?php echo get_option('siteurl'); ?>/wp-admin/profile.php"><?php echo $user_identity; ?></a>. <a href="<?php echo wp_logout_url(get_permalink()); ?>" title="Log out of this account">Log out &raquo;</a></p>

    <?php else : ?>

        <div>
            <input type="text" name="author" id="author" value="<?php echo esc_attr($comment_author); ?>" size="22" tabindex="1" <?php if ($req) echo "aria-required='true'"; ?> />
            <label for="author">Name <?php if ($req) echo "(required)"; ?></label>
        </div>

        <div>
            <input type="text" name="email" id="email" value="<?php echo esc_attr($comment_author_email); ?>" size="22" tabindex="2" <?php if ($req) echo "aria-required='true'"; ?> />
            <label for="email">Mail (will not be published) <?php if ($req) echo "(required)"; ?></label>
        </div>

        <div>
            <input type="text" name="url" id="url" value="<?php echo esc_attr($comment_author_url); ?>" size="22" tabindex="3" />
            <label for="url">Website</label>
        </div>

    <?php endif; ?>

    <!--<p>You can use these tags: <code><?php echo allowed_tags(); ?></code></p>-->

    <div>
        <textarea name="comment" id="comment" cols="58" rows="10" tabindex="4"></textarea>
    </div>

    <div>
        <input name="submit" type="submit" id="submit" tabindex="5" value="Submit Comment" />
        <?php comment_id_fields(); ?>
    </div>

    <?php do_action('comment_form', $post->ID); ?>

</form>

<?php endif; // If registration required and not logged in ?>

Я прочитал этот вопрос, но не спрашиваюне понимаю, что решение.Что мне делать, чтобы <?php do_action( 'comment_form', $post->ID ); ?> вел себя как ожидалось?

ОБНОВЛЕНИЕ:

Это мой single.php, и, как вы видите, $post установленпоэтому не знаю, в чем проблема:

<?php get_header(); ?>

<nav>
    <?php wp_nav_menu(array('menu' => 'Main Nav Menu')); ?>
                    </nav>

<div id="main-content">

    <div class="post-bg-single">


<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

    <div <?php post_class() ?> id="post-<?php the_ID(); ?>">


        <div class="post-title-single"><h2><?php the_title(); ?></h2></div>
        <h5 class="date-single">Posted on <?php the_time(get_option('date_format')); ?></h5>

        <div class="separator-up-single"></div>


        <div class="thumbnail-single"><?php
            if( has_post_thumbnail() ){
                echo get_the_post_thumbnail(); // or just simply, the_post_thumbnail()
            }
        ?></div>

        <div class="entry">

            <?php the_content(); ?>

        <h5 class="expand">Expand post area</h5> 
        <!-- <h5 class="print">Printable version</h5> -->

        </div>

        <div class="separator-down"></div>

        <h5 class="categories">Categories: <?php the_category(', ') ?></h5>
        <h5 class="tags"><?php the_tags('Tags: ', ', ', '<br />'); ?></h5>

        <h5 class="edit"><?php edit_post_link(__('&rarr; Edit post&larr; '), ''); ?></h5>

    </div>
</div>

<h84>Read more:</h84>

<div id="related-posts">
<?php
$categories = get_the_category($post->ID);
if ($categories) {
$category_ids = array();
foreach($categories as $individual_category) $category_ids[] = $individual_category->term_id;

$args=array(
    'category__in' => $category_ids,
    'post__not_in' => array($post->ID),
    'showposts'=>4, // Number of related posts that will be shown.
    'caller_get_posts'=>1
);
$my_query = new wp_query($args);
if( $my_query->have_posts() ) {
    echo '
    <ul>';
    while ($my_query->have_posts()) {
        $my_query->the_post();
    ?>

        <?php    $bg_image = post_thumb( get_the_post_thumbnail() );?>  


        <a href="<?php the_permalink() ?>"><div class="post-bg-archive" style="background: #777777 url(<?php echo $bg_image;?>);">

        <div id="title-bg">
            <div class="transparency"></div>
            <div class="archive-title"><h10><?php the_title(); ?></h10></div>
        </div>

</div></a>

    <?php
    }
    echo '</ul>';
}
}
?>  
</div>

<div class="comments-bg">
<?php comments_template(); ?>
</div>
<?php endwhile; endif; ?>

<?php get_sidebar(); ?>

<?php get_footer(); ?>

1 Ответ

3 голосов
/ 07 декабря 2011

Когда вы создаете новый WP_Query, он перезаписывает глобальную переменную $ post новым запросом.

Либо попробуйте get_posts () и переписать запрос, либо добавьте в wp_reset_query (); прямо перед вызовом comments_template ();

wp_reset_query (); был бы самый быстрый способ получить его отображение правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...