post_metaフィールドが0の場合、または2日齢の場合、別のカテゴリに投稿を移動しますか?

wordpress.stackexchange https://wordpress.stackexchange.com/questions/7420

  •  16-10-2019
  •  | 
  •  

質問

post_metaフィールドが0である場合、投稿を別のカテゴリに移動することは可能ですか?
私は逆注文の投票を作成しています。すべての投稿にはデフォルトで10票があり、ユーザー投票の後、Post_metaを更新することで1票を削除します。投票フィールドが0または2日の場合、投稿を別のカテゴリに移動しようとします。年。

解決策を見つけました ここ これは、データベースのこれから過去の日付である場合、別のカテゴリに投稿を移動します。
チェックを行うために1時間ごとに実行されます

if (!wp_next_scheduled('sfn_expire_hook')){
    wp_schedule_event( time(), 'hourly', 'sfn_expire_hook');
}

add_action( 'sfn_expire_hook', 'sfn_show_expire');
function sfn_show_expire(){
    global $wpdb;
    $server_time = date('mdy');
    $result = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_type = 'post' 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
}

誰かが私がこれを拡張して2日前の投稿をチェックするのを手伝ってくれますか?post_metaの「投票」が「0」である場合は?

どうもありがとう、
フィリップ

役に立ちましたか?

解決

投票を削除したら、あなたの状態を確認してください。必要に応じて:

  1. でカテゴリを取得します wp_get_object_terms() (低レベルのFUNC、これには完全なオブジェクトは必要ないので、名前またはIDを取得するように指定できます)
  2. Arrayを変更します(不要なカテゴリを削除し、実行するカテゴリを追加します)
  3. でカテゴリを設定します wp_set_post_categories() (すべてのカテゴリを上書きして、配列から削除するカテゴリがなくなるようになります)
ライセンス: CC-BY-SA帰属
所属していません wordpress.stackexchange
scroll top