it-swarm.com.de

Beitrag in eine andere Kategorie verschieben, wenn das Feld post_meta 2 Tage alt ist oder ist?

Ist es möglich, einen Beitrag in eine andere Kategorie zu verschieben, wenn das Feld post_meta den Wert 0 hat?
Ich baue eine Abstimmung in umgekehrter Reihenfolge auf, jeder Beitrag hat standardmäßig 10 Stimmen und entfernt nach einer Benutzerabstimmung eine Stimme durch Aktualisieren des post_meta. Jetzt versuche ich, den Beitrag in eine andere Kategorie zu verschieben, wenn das Abstimmungsfeld aktiviert ist ist 0 oder 2 Tage alt.

Ich habe hier eine Lösung gefunden , die einen Beitrag in eine andere Kategorie verschiebt, wenn ein vergangenes Datum von diesem in der Datenbank ist.
Es wird jede Stunde ausgeführt, um die Überprüfung durchzuführen

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
}

kann mir jemand helfen, dies zu erweitern, um nach 2 Tagen alten Posts zu suchen und ob post_meta "votes" auch "0" ist?

danke vielmals,
Philip

1
Philip

Wenn Sie die Abstimmungsprüfung für Ihren Zustand entfernen, gehen Sie bei Bedarf wie folgt vor:

  1. kategorien abrufen mit wp_get_object_terms() (Low-Level-Funktion, Sie können angeben, dass Namen oder IDs nur abgerufen werden sollen, da Sie dafür keine vollständigen Objekte benötigen.)
  2. array ändern (nicht benötigte Kategorie entfernen, neue hinzufügen)
  3. setze Kategorien mit wp_set_post_categories() (es werden alle Kategorien überschrieben, so dass diejenigen, die du aus dem Array entfernst, verschwunden sind)
1
Rarst