自动使所有作者的帖子在指定日期失效

时间:2018-02-19 作者:labworxsa

好吧,这是一个有点奇怪的问题,我找不到答案。。。然而

我已经用WP类型建立了一个分类广告网站,但现在忽略这个事实。

是否有任何方法可以在特定日期或特定天数后立即自动终止所有作者的帖子。

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

我没有离开任何expired 发布状态,但您可以将发布状态设置为draft 属于trash.

首先,您需要设置一个cron作业以每隔一段时间运行一次,并检查日期是否已到。找到合适的时间取决于你。

// Let\'s check the scheduled even on WP load
add_action( \'init\', \'schedule_post_expiration\' );
function schedule_post_expiration() {

    // If the even is not scheduled already, then do schedule it
    if ( ! wp_next_scheduled( \'reset-post-status\' ) ) {
        wp_schedule_event( strtotime( \'00:00:00\' ), \'daily\', \'reset-post-status\' );
    }

}

// We hook our callback function to our custom action hook to run
// daily and update the post\'s status
add_action( \'reset-post-status\', \'reset_post_status_callback\' );
function reset_post_status_callback(){

    // Get the current date
    $date = date( \'Y-m-d\' );

    // Set the date we want to check. It should match the above date format.
    $check_date = \'2018-02-11\';

    // Check if the time has come
    if ( strtotime( $date ) > strtotime( $check_date ) ){

        // Query a list of a specific author\'s posts
        $author_args = array( \'author\' => 123, \'post_status\' => \'publish\' );

        // Do the query
        $author_query = new WP_Query( $author_args );

        // Check if the query has any post, and setup the post data
        if ( $author_query->have_posts() ) {
            while ( $author_query->have_posts() {
                $author_query->the_post();

                // Update the post\'s status
                wp_update_post( array( \'ID\' => get_the_ID(), \'post_status\' => \'trash\' ) );

            }
        }
        // Reset the posts data
        wp_reset_postdata();
    }

}

结束

相关推荐

为什么PRE_GET_POSTS在POST类型存档中运行良好,但在搜索结果列表中不起作用?

我已经用pre_get_posts 过滤器(如下所示),通过自定义字段“startdate2”按日期排序。这适用于WooCommerce产品列表,但不影响通过相同模板显示的搜索结果列表的排序(archive-product.php).搜索结果中的产品帖子总是顺序错误。我试了很多次,但都没用,我也不知道为什么。是不是pre_get_post 筛选器不适用于搜索结果?还是有必要再写一次pre_get_post 是否仅筛选搜索结果列表?我还在模板中尝试了一个额外的查询,只针对“is\\u search()”-但