简体   繁体   中英

Selecting specific posts with an if statement in a counted loop

I'm currently counting the posts in the loop...

<?php $count = 0; ?>
<?php /* Start the Loop */ ?>
<?php while ( have_posts() ) : the_post(); ?>
    <?php $count++; ?>
    <?php include(locate_template('content.php')); ?>
<?php endwhile; ?>

But need to select specific posts programmatically in an if statement.

The post count I need to select is 1, 4, 5, 8, 9, 12, 13 etc (+3+1r) in sequence.

How can I select these posts (without having to manually type the numbers)?

While technically off topic for WordPress, I think this is something that a good number ueses will enquire about, particularly those that are new to both WordPress and PHP.

As suggested in the comments to your question, you can use a modulus operator to check this, and hopefully this answer will solve your problem.

<?php
$count = 0;
/* Start the Loop */
while ( have_posts() ) : the_post();

    $count++;

    if($count % 4 === 0 || $count % 4 === 1) :
        locate_template('content.php', true);
    endif;

endwhile;
?>

As a side note, the locate_template function will automatically load the template file with require_once (if you set the $load parameter), so you don't need to wrap it in include() .

I'd recommended that you check if the template exists, and if not fall back on a theme default that will always be there.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM