在单独的幻灯片中显示类别中的第一篇、第二篇和第三篇文章

时间:2018-02-27 作者:dtortoise

我到处找了找,还没能找到一个确切的解决方案来解决我要做的事情。

我有this basic JavaScript slider from w3c 一次显示一张幻灯片的。我试图让每张幻灯片显示循环中特定类别的不同帖子。幻灯片#1应包含最近发表的文章,幻灯片#2应包含第二篇,幻灯片#3应包含第三篇。

这是我现在看到的内容,但它只显示每张幻灯片中的第一篇帖子:

<div class="slideshow-container">

        <div class="mySlides fade">
            <div class="numbertext">1 / 3</div>
            <?php
            query_posts("current_post=0&showposts=1&cat=1"); ?>
            <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
                <a href="<?php the_permalink(); ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>">
                    <?the_post_thumbnail( \'large\' ); ?>
                </a>
            <div class="text"><?php the_title(); ?></div>
            <?php endwhile; else : ?>

                <p><?php _e( \'Sorry, no posts matched your criteria.\' ); ?></p>

            <?php endif; ?>
            <?php wp_reset_query(); ?>
            <?php rewind_posts(); ?>
        </div>

        <div class="mySlides fade">
            <div class="numbertext">2 / 3</div>
                <<?php query_posts("current_post=1&showposts=1&cat=1"); ?>
            <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
                <a href="<?php the_permalink(); ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>">
                    <?the_post_thumbnail( \'large\' ); ?>
                </a>
            <div class="text"><?php the_title(); ?></div>
            <?php endwhile; else : ?>

                <p><?php _e( \'Sorry, no posts matched your criteria.\' ); ?></p>

            <?php endif; ?>
            <?php wp_reset_query(); ?>
            <?php rewind_posts(); ?>
        </div>

        <div class="mySlides fade">
            <div class="numbertext">3 / 3</div>
                <<?php query_posts("current_post=2&showposts=1&cat=1"); ?>
            <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
                <a href="<?php the_permalink(); ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>">
                    <?the_post_thumbnail( \'large\' ); ?>
                </a>
            <div class="text"><?php the_title(); ?></div>
            <?php endwhile; else : ?>

                <p><?php _e( \'Sorry, no posts matched your criteria.\' ); ?></p>

            <?php endif; ?>
            <?php wp_reset_query(); ?>
            <?php rewind_posts(); ?>
        </div>

        <a class="prev" onclick="plusSlides(-1)">&#10094;</a>
        <a class="next" onclick="plusSlides(1)">&#10095;</a>
</div>
我希望在没有插件的情况下完成这项工作,这样我的客户端就可以勾选“特色”类别,并将帖子显示在那里。

非常感谢。

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

您应该使用WP_Query() 而不是query\\u帖子。您也不需要为每个查询循环使用单独的查询。只需对特色类别使用WP\\u查询,将其限制为3篇帖子,就可以了。它不一定经过优化,但我将其与您的代码示例拼凑在一起。

这应该让您开始:

<?php
    $per_page = 3;
    $slideshow_query = new WP_Query( array(
        \'cat\' => 1,
        \'posts_per_page\' => $per_page,
    ) );

    if( $slideshow_query->have_posts() ){
        echo \'<div class="slideshow-container">\';
            while ( $slideshow_query->have_posts() ) {
                $slideshow_query->the_post(); ?>
                <div class="mySlides fade">
                    <div class="numbertext"><?= $slideshow_query->current_post + 1; ?> / <?= $per_page ?></div>
                    <a href="<?php the_permalink(); ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>">
                        <?php the_post_thumbnail( \'large\' ); ?>
                    </a>
                    <div class="text"><?php the_title(); ?></div>
                </div>
            <?php } ?>
            <a class="prev" onclick="plusSlides(-1)">&#10094;</a>
            <a class="next" onclick="plusSlides(1)">&#10095;</a>\';
        </div>
    <?php } else {
        _e( \'Sorry, no posts matched your criteria.\' );
    }
?>
更新:根据最近的编辑,应该注意

<?= $slideshow_query->current_post + 1; ?> / <?= $per_page ?>
是的functionally equivalent

<?php echo $slideshow_query->current_post + 1; ?> / <?php echo $per_page ?>
<?= 被称为Short Echo Tag

结束

相关推荐

从gensis_loop中删除gensis_404挂接

我正在使用genesis主题,我想定制一个404页面。为此,我希望删除默认的404钩子并实现我自己的钩子。在我的插件函数中。php我添加了我的操作:add_action( \'genesis_loop\', \'genesis_customizations_404\' ); 在函数中,我添加了删除:function genesis_customizations_404() { echo \'test\'; remove_action(\'genesis_loop\',