如果与当前月份和年份匹配,则隐藏帖子

时间:2016-11-25 作者:MIke

我这里有一个查询,显示它是否匹配当前发布的月份和年份。第二个代码需要与第一个代码相反,第一个代码显示除与当前月份和年份匹配的代码外的所有帖子。

// CURRENT MONTH AND YEAR ONLY
    <?php
        $current_year = date(\'Y\', current_time(\'timestamp\'));
        $current_month = date(\'m\', current_time(\'timestamp\'));
        if ( have_posts() ) { while ( have_posts() ) { the_post(); }} 
        $args = array(\'post_type\' => \'page\', \'post_status\' => \'publish\', \'posts_per_page\' => 12, \'post_parent\' => 11120, \'orderby\'=> \'menu_order\', \'year\' => $current_year, \'monthnum\' => $current_month, \'order\' => \'DESC\');
        $query = new WP_Query($args);
        $catNull = get_template_directory_uri();
        while ($query->have_posts()) {
            $query->the_post(); ?>
                <li class="active MonthTreats slide">
                    <div class="MonthHeader">
                        <h1><?php the_title(); ?></h1>
                    </div>
                    <div class="Content">
                        <div class="MonthContent">
                            <div class="container">
                                <p class="Status">NOW AVAILABLE</p>
                                <?php echo c2c_get_custom(\'Short Description\', $before=\'<h2>\', $after=\'</h2>\'); ?>
                                <?php the_content(); ?>
                            </div>
                        </div>
                    </div>
                </li>
            <?php
        }
        wp_reset_postdata();?>


// ALL POST EXCEPT CURRENT MONTH AND YEAR
    <?php
        if ( have_posts() ) { while ( have_posts() ) { the_post(); }} 
        $args = array(\'post_type\' => \'page\', \'post_status\' => \'publish, future\', \'posts_per_page\' => 12, \'post_parent\' => 11120, \'orderby\'=> \'menu_order\', \'order\' => \'asc\');
        $query = new WP_Query($args);
        $catNull = get_template_directory_uri();
        while ($query->have_posts()) {
            $query->the_post(); ?>
                <li class="MonthTreats slide">
                    <div class="MonthHeader">
                        <h1><?php the_title(); ?></h1>
                    </div>
                    <div class="Content">
                        <div class="MonthContent">
                            <div class="container">
                                <p class="Status">NOW AVAILABLE</p>
                                <?php echo c2c_get_custom(\'Short Description\', $before=\'<h2>\', $after=\'</h2>\'); ?>
                                <?php the_content(); ?>
                            </div>
                        </div>
                    </div>
                </li>
            <?php 
        }
        wp_reset_postdata();?>
    </ul>

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

在第一个循环之前初始化数组:

$exclude = array();
然后将第一个循环中每个帖子的ID添加到该数组中:

while ($query->have_posts()) {
    $query->the_post();
    $exclude[] = get_the_ID();
    // etc...
然后使用该数组通过post__not_in 在第二个查询中:

$args = array(
    \'post_type\' => \'page\',
    \'post__not_in\' => $exclude,
    // etc...

相关推荐

显示作者姓名PHP(自制插件)

我有一个需要帮助的问题,因为我自己找不到解决办法。我接管了一个网站,之前有人在那里创建了一个自制插件。。使用默认插件“Contact Form 7”,用户可以在页面上创建帖子。()https://gyazo.com/c8b20adecacd90fb9bfe72ad2138a980 )关于自行创建的插件“Contact Form 7 extender”,帖子是通过PHP代码在后台生成的(https://gyazo.com/115a6c7c9afafd2970b66fd421ca76a3)其工作原理如下:如果