Setzen Sie den Post je nach Bedingung nach einer Woche auf unveröffentlicht

Ich habe einen Post-Typ mit einem benutzerdefinierten Feld-Kontrollkästchen. Wenn dieses Kontrollkästchen aktiviert ist und der Post veröffentlicht wird, möchte ich die Veröffentlichung rückgängig machen, wenn seit dem letzten Änderungsdatum eine Woche vergangen ist.

Wie würde ich das machen? Muss ich einen Cron laufen lassen?

Im Pseudocode:

if mycheckbox is 1 && post is published && last modified date > one week unpublish post 

(Bearbeiten) Ich denke, ich habe jetzt etwas hier. Die function macht mehr oder weniger das, was sie erwartet. Ich muss nur eine Stunde warten und sehen, ob der Cron Job auch funktioniert.

 // Unpublish fixed occurences one week after last modified date, run this function in a cron once daily function xxx_occurences_unpublish_posts(){ global $wpdb; $args = array( 'post_type' => 'private_occurrences', 'post_status' => 'publish', 'meta_query' => array( array( 'key' => 'occurrence_fixed', 'value' => 1, 'compare' => '==' ) ), 'date_query' => array( array( 'after' => '1 week ago' ) array( 'column' => 'post_modified_gmt', 'after' => '1 week ago', ) ), ); $query = new WP_Query( $args ); $posts = $query->get_posts(); foreach( $posts as $post) { $post_to_be_updated = array( 'ID' => $post->ID, 'post_status' => 'Private', ); wp_update_post( $post_to_be_updated ); } } // Set up cron to run above unpublish function once daily if ( ! wp_next_scheduled('xxx_cron_unpublish_occurrences') ) { wp_schedule_event( time(), 'daily', 'xxx_cron_unpublish_occurrences' ); // hourly, daily and twicedaily } add_action( 'xxx_cron_unpublish_occurrences', 'xxx_occurences_unpublish_posts' ); 

Solutions Collecting From Web of "Setzen Sie den Post je nach Bedingung nach einer Woche auf unveröffentlicht"