为什么have_posts():the_post()不起作用

时间:2015-09-03 13:29:03

标签: php wordpress wordpress-plugin

我正在尝试使用我的插件显示表中的所有帖子。我已经有三个帖子,但下面的代码并没有显示任何内容。

插件代码页

<?php if (have_posts()) : ?><?php while (have_posts()) : the_post(); ?>
               <tr>
                  <td id="username"><?php the_title(); ?></td>

                  <td>
                      <video class="video" width="200" height="100">
                        <source src="<?php echo $rs->user->profile_video;?>" type="video/mp4">
                        Your browser does not support the video.
                      </video>
                </td>
                  <td id="status"><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"></a></td>
                  <td><select class="action">
                      <option>-Select-</option>
                      <option value="1" >Active</option>
                      <option value="0">Inactive</option>
                      <option value="edit">Edit</option>
                      <option value="4">Delete</option>
                    </select></td>
                </tr>


<?php endwhile; ?>
<?php endif; ?>
  

我在哪里做了我的错误???

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:2)

您可以使用WP_Query来检索您的帖子。 WP_Query是一个类,它的构造函数将返回一个对象,该对象也有循环函数。

请注意$wq变量和$wq->have_posts()

重要提示:对于循环内部调用的函数(the_title()the_content()the_permalink()等),不要前置{{ 1}}变量。它们与$wq

一样工作
query_posts()

答案 1 :(得分:0)

我遇到了同样的问题,

当我使用print_r($ wq); 我得到了结果,但是have_posts()返回了假

我使用以下代码为我修复了该问题:

<?php
$args = array(
      'posts_per_page'   => -1,
      'offset'           => 0,
      'orderby'          => 'date',
      'order'            => 'ASC',
      'post_type'        => 'post',

    );
$myposts = get_posts( $args );

   foreach ( $myposts as $post ) : setup_postdata( $post );
?>

<p>my html</p>

<?php endforeach; wp_reset_postdata(); ?>