Wordpress 提交评论后会显示上一篇文章

Wordpress 提交评论后会显示上一篇文章,wordpress,comments,wordpress-theming,Wordpress,Comments,Wordpress Theming,我的代码有什么问题,它导致页面在提交评论后转到上一篇文章 是网页。 如果你愿意,你可以试试 这是comments.php中的代码: <?php if (!empty($_SERVER['SCRIPT_FILENAME']) && 'comments.php' == basename($_SERVER['SCRIPT_FILENAME'])) die ('Please do not load this page directly. Thanks!'); if (

我的代码有什么问题,它导致页面在提交评论后转到上一篇文章

是网页。 如果你愿意,你可以试试

这是
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 ?>

当您执行新的WP_查询时,它会用新查询覆盖全局$post变量

请尝试获取_posts()并重写查询,或者尝试加载wp_reset_query();就在调用comments_template()之前


wp_reset_query();这是让它正确显示的最快方法

执行新的WP_查询时,它会用新查询覆盖全局$post变量

请尝试获取_posts()并重写查询,或者尝试加载wp_reset_query();就在调用comments_template()之前


wp_reset_query();这是让它正确显示的最快方法

当您回显
$post->ID
时会发生什么?由于某种原因,它的值一定是错误的。您发布的代码不包含有关设置$post的任何信息,因此我们无法从您当前的代码中找到解决方案。我建议进一步查看代码结构,查看$post何时设置以及何时更改。如果改用
get\u ID()
怎么办?我在哪里使用它?而不是什么?当你回显
$post->ID
时会发生什么?由于某种原因,它的值一定是错误的。您发布的代码不包含有关设置$post的任何信息,因此我们无法从您当前的代码中找到解决方案。我建议进一步查看代码结构,查看$post何时设置以及何时更改。如果改用
get\u ID()
怎么办?我在哪里使用它?我应该在哪里添加
wp_reset_quesry()?就在
之前?另外,我是否需要在重置后再次设置
$post
,如果是,请告诉我在哪里使用什么代码。[正如您所知,我是PHP的初学者。]
应该可以。也无需再次设置$post:)我应该在哪里添加
wp_reset_quesry()?就在
之前?另外,我是否需要在重置后再次设置
$post
,如果是,请告诉我在哪里使用什么代码。[正如您所知,我是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(); ?>