WP中的Php while循环不起作用

时间:2017-02-16 09:50:16

标签: php wordpress

我想循环浏览wordpress中的帖子,但是我的循环错误,因为我收到错误,不确定如何修复它。这是循环:

  <?php if ($wp_query->have_posts()) : global $wp_query; $count = $wp_query->found_posts; ?>
      <?php  while ( $wp_query->have_posts()) : $wp_query->the_post(); ?>


            <li> <?php echo get_the_title() ?></li>

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

我收到错误

  

页面无效

     

superselma.dev目前无法处理此请求。 HTTP错误   500

更新

当我这样的时候:

<?php if ($wp_query->have_posts()) :?>
          <?php if ($wp_query->have_posts()) : global $wp_query; $count = $wp_query->found_posts; ?>
        <?php  while ( $wp_query->have_posts()) : $wp_query->the_post(); ?>


              <li> <?php echo get_the_title() ?></li>

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

然后它正在运作。所以,问题出在这一行:

<?php if ($wp_query->have_posts()) : global $wp_query; $count = $wp_query->found_posts; ?>

这是该页面的完整代码:

<?php if ($wp_query->have_posts()) :?>
          <?php if ($wp_query->have_posts()) : global $wp_query; $count = $wp_query->found_posts; ?>
        <?php  while ( $wp_query->have_posts()) : $wp_query->the_post(); ?>


              <li> <?php echo get_the_title() ?></li>

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

        <?php if ($count > $per_page) :?>
            <div id="target-area"></div>

            <div class="small-centered small-10 medium-6 columns">
                <a id="get-more" class="sfk-btn button expand" href="javascript:getMore(<?php echo $cat_id; ?>, <?php echo $per_page; ?>, <?php echo $per_page; ?>)"><span>Klikk for mer</span></a>
            </div>
        <?php endif; ?>

        <?php else : ?>

            <article id="post-0" class="post no-results not-found">
                <header class="entry-header">
                    <h1 class="entry-title"><?php _e( 'Ikke flere artikler', 'twentyeleven' ); ?></h1>
                </header><!-- .entry-header -->

                <div class="entry-content">
                    <p><?php _e( 'Beklager, men ingen poster var funnet for dette arkivet.', 'twentyeleven' ); ?></p>
                    <?php get_search_form(); ?>
                </div><!-- .entry-content -->
            </article><!-- #post-0 -->

        <?php endif; ?>

4 个答案:

答案 0 :(得分:1)

在if语句之前声明(或者如果存在删除) global $ wp_query; 并在 div class =“small-centered small-10 medium”之后删除 endif; -6列“

答案 1 :(得分:1)

删除全局$ wp_query;从你的代码。它将开始打印标题。

答案 2 :(得分:1)

首先,你能看看php错误日志,如果没有在php.ini中定义配置它 它有很大帮助,也将wordpress设置为调试模式。

http://php.net/manual/en/errorfunc.configuration.php#ini.error-log

答案 3 :(得分:1)

问题是我应该关闭if循环。当我删除第一个endif语句时,它就可以了。