如何根据自定义字段自动将帖子状态更改为草稿

时间:2011-04-18 作者:Phillip Cox

我想根据自定义字段日期将帖子设置为自动草稿。

注:I am using the plugin Magic Fields.

基于以下代码,我想使用自定义字段“expiration”来给出日期。

function sfn_show_expire() { 
    global $wpdb; 
    $server_time = date(\'mdy\'); 
    $result = $wpdb->get_results("SELECT * FROM wp_posts WHERE post_type = \'show\' AND post_status = \'publish\'"); 
    if( !empty($result)) {
        foreach ($result as $a) { 
            $show_time = get_the_time(\'mdy\', $a->ID ); 
            if ( $server_time > $show_time) { 
                $my_post = array(); 
                $my_post[\'ID\'] = $a->ID; 
                    $my_post[\'post_status\'] = \'draft\'; 
                wp_update_post( $my_post ); 
            } 
        } // end foreach 
    }
} 
add_action( \'init\', \'sfn_show_expire\' ); 
最终,我希望在cron工作中实现这一点,但目前对代码的任何建议都将是非常好的。

2 个回复
SO网友:kaiser

对于cron作业,请查看Transients API.

其余的可能是通过以下方式实现的。我以前从未使用过瞬态API,代码也没有经过测试。

function set_post_to_draft()
{
    global $post;

    if ( get_post_meta( $post->ID, \'set_to_draft_key\' ) == true );
        return $post->post_status == \'draft\';
}
set_transient( \'post_to_draft_transient\', set_post_to_draft(), 60*60*12 ); // 12h interval

SO网友:Varadha

执行此任务的几种方法。在这里,我曾经遵循这个准则。

$update_post = array(
            \'ID\'            => $id,
            \'post_status\'   =>  \'private\',
            \'post_type\' =>  \'job\' );
            wp_update_post($update_post);
更多信息,请查看此处。Read Here Kvcodes.com

结束

相关推荐