所有帖子都有相同的评论

时间:2015-02-18 作者:Chun

我有一只奇怪的虫子。我从一个特定的帖子中得到了相同的评论,每个帖子都是“Hello world”!但是,当我删除了我试图创建的一个最近发布的小部件的一些代码时,这个bug消失了。。。以下是最近发布的小部件的代码:

class Hype_Recent_Posts extends WP_Widget {

    public function __construct() {
        parent::__construct(
            \'hype_rp\', // Base ID
            __(\'Paradox Recent Posts\', \'hype\'), // Name
            array( \'description\' => __( \'Display your recent posts, with a Thumbnail.\', \'hype\' ), ) // Args
        );
    }

    public function widget( $args, $instance ) {
        $title = apply_filters( \'widget_title\', $instance[\'title\'] );
        $no_of_posts = apply_filters( \'no_of_posts\', $instance[\'no_of_posts\'] );

        echo $args[\'before_widget\'];

        if ( ! empty( $title ) )
            echo $args[\'before_title\'] . $title . $args[\'after_title\'];

        // WP_Query arguments
        $qa = array (
            \'post_type\'              => \'post\',
            \'posts_per_page\'         => 5,
            \'offset\'                 => 0,
            \'ignore_sticky_posts\'    => 1

        );

        // The Query
        $recent_articles_wtb = new WP_Query( $qa );
        if($recent_articles_wtb->have_posts()) : ?>
        <ul class="rp">
        <?php
            while($recent_articles_wtb->have_posts()) : 
            $recent_articles_wtb->the_post();
         ?>

                 <li class=\'rp-item\'>
                 <?php if( has_post_thumbnail() ) : ?>
                 <div class=\'rp-thumb\'><a href="<?php the_permalink(); ?>"><?php the_post_thumbnail(\'thumbnail\'); ?><i class="fa fa-folder-open"></i></a></div>
                 <?php else : ?>
                 <div class=\'rp-thumb\'><a href="<?php the_permalink(); ?>"><img src="<?php bloginfo(\'template_directory\'); ?>/images/9viqf41.jpg"><i class="fa fa-folder-open"></i></a></div>
                 <?php endif; ?>    
                 <div class=\'rp-title\'><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></div>
                 </li>

        <?php
              endwhile;
           else: 
        ?>

              Oops, there are no posts.

        <?php
           endif;
        ?>
        </ul>
        <?php

        echo $args[\'after_widget\'];
    }

    public function form( $instance ) {
        if ( isset( $instance[ \'title\' ] ) ) {
            $title = $instance[ \'title\' ];
        }
        else {
            $title = __( \'Latest Articles\', \'hype\' );
        }
        if ( isset( $instance[ \'no_of_posts\' ] ) ) {
            $no_of_posts = $instance[ \'no_of_posts\' ];
        }
        else {
            $no_of_posts = __( \'5\', \'hype\' );
        }
        ?>
        <p>
        <label for="<?php echo $this->get_field_id( \'title\' ); ?>"><?php _e( \'Title:\',\'hype\' ); ?></label> 
        <input class="widefat" id="<?php echo $this->get_field_id( \'title\' ); ?>" name="<?php echo $this->get_field_name( \'title\' ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>" />

        <label for="<?php echo $this->get_field_id( \'no_of_posts\' ); ?>"><?php _e( \'No. of Posts:\', \'hype\' ); ?></label>
        <input class="widefat" id="<?php echo $this->get_field_id( \'no_of_posts\' ); ?>" name="<?php echo $this->get_field_name( \'no_of_posts\' ); ?>" type="text" value="<?php echo esc_attr( $no_of_posts ); ?>" />
        </p>
        <?php 
    }

    public function update( $new_instance, $old_instance ) {
        $instance = array();
        $instance[\'title\'] = ( ! empty( $new_instance[\'title\'] ) ) ? strip_tags( $new_instance[\'title\'] ) : \'\';
        $instance[\'no_of_posts\'] = ( ! empty( $new_instance[\'no_of_posts\'] ) ) ? strip_tags( $new_instance[\'no_of_posts\'] ) : \'5\';
        if ( is_numeric($new_instance[\'no_of_posts\']) == false ) {
            $instance[\'no_of_posts\'] = $old_instance[\'no_of_posts\'];
            }
        return $instance;


    }
}
add_action( \'widgets_init\', \'register_hype_widget\' );  
function register_hype_widget() {  
    register_widget( \'Hype_Recent_Posts\' );  
}  

1 个回复
最合适的回答,由SO网友:Privateer 整理而成

你正在用你的插件在全球wordpress帖子上跺脚。

执行wp\\U查询调用,然后调用

$recent_articles_wtb->the_post();
意味着稍后(在循环之后),您将要调用

wp_reset_postdata(); # Thanks Milo
这将重置全局$current\\u post和$post对象。

结束

相关推荐

Redirect first time comments

因此,我想在我的注释表单中添加一个注释重定向代码。我知道我这里有这个部分:<input name=\"redirect_to\" type=\"hidden\" value=\"http://domain.com/thank-you\" /> 所以我要做的是用if-else 看看这是否是他们的第一条评论:if ( $FirstTimeComment = true ) : ?> <input name=\"redirect_to\" type=\"hidde