Php 如果帖子中的日期等于今天,则从WordPress循环中删除帖子;日期

Php 如果帖子中的日期等于今天,则从WordPress循环中删除帖子;日期,php,wordpress,loops,date,Php,Wordpress,Loops,Date,我的措辞可能非常糟糕。所以我有一系列来自CPT的帖子,叫做“即将到来的游戏”。我使用高级自定义字段设置每个游戏的发布日期。现在,当游戏的日期等于今天的日期时,我希望它做点什么。我有两个场景,但现在想用最简单的 场景#1=起草该帖子 场景#2*=将该帖子从循环中删除,这样它就不会出现在前端,所以它仍然会被发布 *我的理想选择 这是我在此循环的一部分: $time = current_time( 'timestamp' ); // Get current unix timestamp $cpt_p

我的措辞可能非常糟糕。所以我有一系列来自CPT的帖子,叫做“即将到来的游戏”。我使用高级自定义字段设置每个游戏的发布日期。现在,当游戏的日期等于今天的日期时,我希望它做点什么。我有两个场景,但现在想用最简单的

场景#1=起草该帖子

场景#2*=将该帖子从循环中删除,这样它就不会出现在前端,所以它仍然会被发布

*我的理想选择

这是我在此循环的一部分:

$time = current_time( 'timestamp' ); // Get current unix timestamp

$cpt_posts_per_page = ( is_front_page() ) ? 4 : -1;
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;

$args = array(
        'post_type'                 => 'upcoming-games',
        'post_status'               => 'publish',
        'orderby'                   => 'meta_value',
        'meta_key'                  => 'release_date',
        'meta_value'                => $time,
        'meta_compare'              => '>=',
        'order'                     => 'ASC',
        'posts_per_page'            => $cpt_posts_per_page,
        'paged'                     => $paged
    );

    $upcoming_games = new WP_Query( $args );

    ?>

现在不能测试,但是你可以从中得到一些想法

add_action( 'pre_get_posts', 'custom_pre_get_posts_query' );

function custom_pre_get_posts_query( $q ) {

    if ( ! $q->is_main_query() ) return;
    if ( ! $q->is_post_type_archive() ) return;

    if ( ! is_admin() && (is_blog() || is_archive()) ) {

        $q->set( 'date_query', array(array(
            'year'  => date("Y"),
            'month' => date("m"),
            'day'   => date("d"),
            'inclusive' => false
        )));

    }

    remove_action( 'pre_get_posts', 'custom_pre_get_posts_query' );
在您的代码中,您也可以使用

 $arg = array( 'date_query' => array(
            'year'  => date("Y"),
            'month' => date("m"),
            'day'   => date("d"),
            'inclusive' => false
        ) )

作为WP_Query()参数。

对不起,当我指的是今天的日期时,我指的是今天/当前的任何一天,而不是2017年1月4日。所以我只举了一个例子,你可以用实际情况替换它,更新它,我希望你能理解并实现它。我能把它放到我的functions.php中吗?@DarrenBachan如果你不能理解它,最好花点时间在codex上。如果不了解它,您可以使用它,是的,您可以将它放在functions.php中,但根据您的情况,您可能希望对其进行一些修改。如果你觉得有帮助,别忘了投票。