如果有一周前的帖子,则显示,否则显示不同的循环

时间:2011-06-22 作者:Duane

这就是我所拥有的。

<?php
$week = date(\'W\');
$year = date(\'Y\');
$projects_in_news = new WP_Query(
                array(
                \'post_type\' =>\'news\',
                \'posts_per_page\' => 5,
                \'orderby\' =>\'ID\',
                \'order\' =>\'ASC\',
                \'w\' => $week,
                \'y\' => $year,
                \'tax_query\' => array(
                        array(
                             \'taxonomy\' => \'project_taxo\',
                             \'terms\' => $post->post_name,
                             \'field\' => \'slug\'
                             )
                       )
                )
);

// The Loop
<?php if($projects_in_news->have_posts()) : ?>

        <?php while($projects_in_news->have_posts()) : $projects_in_news->the_post(); ?>
                <ul class="side-list">     
                    <li>
                         <a href="<?php the_permalink(); ?>">
                            <strong class="title"><?php the_title(); ?></strong>
                            <em class="date"><span><?php the_author(); ?>,</span> <?php the_time(\'d F Y\'); ?></em>
                          </a>
                    </li>
                </ul>
        <?php endwhile; ?>

        <?php else: ?>
            <p>There is no news related to this theme</p>

        <?php endif; ?>
            <?php wp_reset_postdata(); ?>
这里显示的是上周与查询匹配的帖子。

是否有办法确定此循环查询是否有帖子,如果没有,是否使用不同的查询和循环?

我尝试添加以下代码来代替<p>There is no news related to this theme</p>

                                  <?php 
                                            $theme_in_news = new WP_Query(
                                                    array(
                                                        \'post_type\' =>\'theme\',
                                                        \'posts_per_page\' => 5,
                                                        \'orderby\' =>\'ID\',
                                                        \'order\' =>\'ASC\',
                                                    )
                                            );
                                    ?>

                                    <?php if($theme_in_news->have_posts()) : ?>

                                    <?php while($theme_in_news->have_posts()) : $theme_in_news->the_post(); ?>
                                    <ul class="side-list">     
                                        <li>
                                            <a href="<?php the_permalink(); ?>">
                                            <strong class="title"><?php the_title(); ?></strong>
                                            <em class="date"><span><?php the_author(); ?>,</span> <?php the_time(\'d F Y\'); ?></em>
                                            </a>
                                        </li>
                                    </ul>
                                    <?php endwhile; ?>
但它返回一个内部服务器错误。

谢谢

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

您提供的代码已经检查了上述查询是否存在帖子。所以你需要做的就是扩展它。

...
    <?php else: ?>
        <p>There is no news related to this theme</p>

    <?php endif; ?>
...
只需在上面的代码中放置下一个查询帖子即可替换<p>There is no news related to this theme</p>

结束

相关推荐

Main Loop未在自定义博客模板页面中启动

我为我页面的博客部分制作了一个自定义模板。我甚至将post page设置为Blog.我创建了一个名为“页面内容”的自定义帖子类型,并在#feature 分区,但未显示主要帖子(写在帖子面板中)(#blog 部门)有什么建议可以解决这个问题吗?编辑:我刚刚在webkit inspector中看到:Fatal error: Cannot use object of type WP_Query as array in /home/alex/www/wpa/wp-includes/query.php on lin