当我在Wordpress中创建帖子时,我通过名为Post Expirator的插件确定过期日期。我的问题是如何在主页,类别等过期时删除这些帖子。
此外,我会将所有过期的帖子显示在我网站的某个位置。
我尝试过使用meta_keys和meta_value,但我没有成功。
<?php $args = array(
'meta_key' => '_expiration-date',
);
$query = new WP_Query( $args ); ?>
<?php if($query->have_posts()) : ?>
<?php while($query->have_posts()) : $query->the_post() ?>
<?php get_template_part( 'content', get_post_format() ); ?>
<?php endwhile ?>
<?php endif ?>
使用上面的代码,我可以显示我添加过期日期的帖子,无论过期日期如何,现在想知道如何通过将过期日期与当前日期进行比较来在循环中删除它们。 / p>
答案 0 :(得分:1)
试试这个,代码工作在我的网站上,首先您的_expiration-date
键值格式为Y-m-d
表示2015-10-17
必须
<?php
$today = date("Y-m-d");
$args = array(
'posts_per_page' => -1,
'orderby' => 'date',
'order' => 'DESC',
'meta_key' => 'clx_event_start_date',
'meta_query' => array(
array( // restrict posts based on meta values
'key' => '_expiration-date', // which meta to query
'value' => $today, // value for comparison
'compare' => '>=' // method of comparison
)
'post_type' => 'post', //your post type
'post_status' => 'publish'
);
$posts_array = get_posts( $args );
foreach($posts_array as $RowCron){
echo $post_id = $RowCron->ID;
}
?>