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