How to do some action weekly?

时间:2013-01-11 作者:Steffi

对于每个新帖子,我添加News 类别

我想delete this category 7天后从每个帖子中删除。我已经知道如何“删除”新类别,但如何每周运行?

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

你尝试过这个插件吗?http://wordpress.org/extend/plugins/scheduled-post-delete/

////

对不起,我错了,我理解错了。尝试将其粘贴到函数中。php:

function auto_cat_remove() {

    global $post;
    wp_schedule_single_event( time() + 604800, \'remove_news_cat_event\', array( $post->ID ) );

}

function remove_news_cat_func( $post_id ) {
    global $wpdb;
    $category_id = get_cat_ID( \'news\' );
    $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->term_relationships WHERE object_id = %d AND term_taxonomy_id = %d", $post_id, $category_id ) );
}

add_action( \'publish_post\', \'auto_cat_remove\' );
add_action( \'remove_news_cat_event\', \'remove_news_cat_func\' );
基本上,这将在创建后的七天内安排活动。第7天,将运行remove\\u news\\u cat\\u func函数,从分配给该帖子的类别列表中删除“news”类别。

如果您想测试它,可以将wp\\u schedule\\u single\\u event中的604800更改为30,如果这样做,创建后30秒类别应该消失。

请注意,此功能依赖于WP Cron,因此要启动它,实际上必须有人访问该站点(这可能会导致30秒的短时间延迟,但几天内您就可以了)。

SO网友:Steffi

我找到了解决办法<谢谢@OriginalEXE给我的cron

add_action( \'publish_post\', \'auto_cat_remove\' );
add_action( \'remove_news_cat_event\', \'remove_cat_from_post\' );

function auto_cat_remove() {
    global $post;
    wp_schedule_single_event( time() + 604800, \'remove_news_cat_event\', array( $post->ID ) );
}

function remove_cat_from_post( $post_id ) {

    $term = 419; // Your cat ID
    $taxonomy = "category";

    if ( ! is_numeric( $term ) ) {
        $term = get_term( $term, $taxonomy );
        if ( ! $term || is_wp_error( $term ) )
           return false;
        $term_id = $term->term_id;
    } else {
        $term_id = $term;
    }

    // Get the existing terms and only keep the ones we don\'t want removed
    $new_terms = array();
    $current_terms = wp_get_object_terms( $post_id, $taxonomy, array( \'fields\' => \'ids\' ) );

    foreach ( $current_terms as $current_term ) {
       if ( $current_term != $term_id )
            $new_terms[] = intval( $current_term );
       }

    return wp_set_object_terms( $post_id, $new_terms, $taxonomy );
} 

结束

相关推荐

自然排序/排序wp_Dropdown_Categories

我使用以下代码显示存档下拉列表: wp_dropdown_categories( \'taxonomy=week&hierarchical=1&orderby=name\' ); 然而,分类法的格式是第1周、第2周。。。。第10周、第11周我需要按照http://www.php.net/manual/en/function.natsort.php e、 g。第1周第2周<第10周第11周目前正在订购true alpha,例如。第1周第10周第11周第2周不知道最好的方