最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

TrashDraft a WordPress custom post after custom date field expires

programmeradmin1浏览0评论

I have seen some examples of people asking similar to this but no real solution. Hopefully someone maybe able to point me in the right direction

I have a Custom Post Type set up called featured_product. Within this I have set up a custom date/time field called featured_product_expiration.

What I'm trying to achieve is once the expiration date of the post type has expired, the post would be moved to Trash or set to Draft (so that it no longer shows on the front end).

I have set up WP Crontrol plugin which is using a hook to target a function in my functions.php. The cron is set to run every minute.

This is my function in functions.php (the featured_product_action is what I have called my custom cron job in WP Crontrol)

add_action('featured_product_action', '_delete_expired_fp');
$past = strtotime( "- 1 day" );
function _delete_expired_fp() {

  // Set our query arguments
  $args = [
    'fields'         => 'ids', // Only get post ID's to improve performance
    'post_type'      => 'featured_product', // Post type
    'posts_per_page' => -1,
    'meta_query'     => [
        [
            'key'     => 'featured_product_expiration', // Replace this with the event end date meta key.
            'value' => $past,
            'compare' => '<='
        ]
    ]
  ];
  $q = get_posts( $args );

  // Check if we have posts to delete, if not, return false
  if ( !$q ) {
    return false;
  }
  // OK, we have posts to delete, lets delete them
  foreach ( $q as $id ){
      wp_trash_post( $id );
  }
}

I can see in the Dashboard the the cron is running correctly and referring to the correct callback function but nothing is happening on the front or back end. Is anybody able to pinpoint where I maybe going wrong with this. I feel like I'm nearly there.

Could the issue be related to the way I have my date formatted in my custom date/time field?

Any help much appreciated.

发布评论

评论列表(0)

  1. 暂无评论
ok 不同模板 switch ($forum['model']) { /*case '0': include _include(APP_PATH . 'view/htm/read.htm'); break;*/ default: include _include(theme_load('read', $fid)); break; } } break; case '10': // 主题外链 / thread external link http_location(htmlspecialchars_decode(trim($thread['description']))); break; case '11': // 单页 / single page $attachlist = array(); $imagelist = array(); $thread['filelist'] = array(); $threadlist = NULL; $thread['files'] > 0 and list($attachlist, $imagelist, $thread['filelist']) = well_attach_find_by_tid($tid); $data = data_read_cache($tid); empty($data) and message(-1, lang('data_malformation')); $tidlist = $forum['threads'] ? page_find_by_fid($fid, $page, $pagesize) : NULL; if ($tidlist) { $tidarr = arrlist_values($tidlist, 'tid'); $threadlist = well_thread_find($tidarr, $pagesize); // 按之前tidlist排序 $threadlist = array2_sort_key($threadlist, $tidlist, 'tid'); } $allowpost = forum_access_user($fid, $gid, 'allowpost'); $allowupdate = forum_access_mod($fid, $gid, 'allowupdate'); $allowdelete = forum_access_mod($fid, $gid, 'allowdelete'); $access = array('allowpost' => $allowpost, 'allowupdate' => $allowupdate, 'allowdelete' => $allowdelete); $header['title'] = $thread['subject']; $header['mobile_link'] = $thread['url']; $header['keywords'] = $thread['keyword'] ? $thread['keyword'] : $thread['subject']; $header['description'] = $thread['description'] ? $thread['description'] : $thread['brief']; $_SESSION['fid'] = $fid; if ($ajax) { empty($conf['api_on']) and message(0, lang('closed')); $apilist['header'] = $header; $apilist['extra'] = $extra; $apilist['access'] = $access; $apilist['thread'] = well_thread_safe_info($thread); $apilist['thread_data'] = $data; $apilist['forum'] = $forum; $apilist['imagelist'] = $imagelist; $apilist['filelist'] = $thread['filelist']; $apilist['threadlist'] = $threadlist; message(0, $apilist); } else { include _include(theme_load('single_page', $fid)); } break; default: message(-1, lang('data_malformation')); break; } ?>