it-swarm.com.de

ändere alle Beiträge einer Kategorie in "keine Kommentare erlaubt"

Ich suche nach einer Möglichkeit, alle Posts einer bestimmten Kategorie so zu ändern, dass "keine Kommentare zulässig" sind, ohne die einzelnen Post-Einstellungen einzeln aufzurufen und manuell zu ändern.

Vielleicht eine MySQL-Anweisung?

Vielen Dank

3

Auf Ihrem Beitragsbildschirm sollten Sie in der Lage sein, nach Kategorien zu filtern und dann alle und die Massenbearbeitung auszuwählen, um Kommentare zu deaktivieren.

Bearbeiten: Massenaktionen gelten nur pro Seite (z. B. 20 Beiträge oder wie viele Sie auch immer anzeigen). Sie müssen dies also entweder für jede Seite tun oder gehen Sie zu den Bildschirmoptionen und erhöhen Sie die Anzahl der auf dem Bildschirm angezeigten Elemente.

3
helenhousandi

Um dies direkt in WordPress zu tun, können Sie Folgendes verwenden:

<?php
    $args = array('category' => *term_id of category to disable comments for*);
    $myposts = get_posts($args);
    foreach($myposts as $post) {
         $my_post = array(
             'ID' => $post->ID,
             'comment_status' => 'closed'
         );
         wp_insert_post($my_post);     
    }        
?>

get_posts () ruft alle Posts mit der in $ args angegebenen Kategorie ab:

'category' => $term_id

Mit wp_insert_post () können Sie diese Posts ändern, um Kommentare mit der folgenden Einstellung zu deaktivieren:

'comment_status' => 'closed'

Möglicherweise möchten Sie die Dokumentationsseiten für get_posts () und anzeigen. wp_insert_post () für weitere Informationen.

Um sicherzustellen, dass keine zukünftigen Posts in dieser Kategorie Kommentare zulassen, können Sie auch den Haken save_post verwenden:

save_post Wird immer dann ausgeführt, wenn ein Beitrag oder eine Seite erstellt oder aktualisiert wird. Dies kann aus einem Import-, Post-/Seitenbearbeitungsformular, xmlrpc oder Post per E-Mail stammen. Argumente für Aktionsfunktionen: Beitrags-ID.

<?php
    add_action('save_posts', 'disable_comments');
    function disable_comments($post_id) {
        $disabled_category = /* term_id of the category to disable comments for */
        $category = get_the_category($post_id);
        if($category->cat_ID == $disabled_category) {
           $my_post = array(
             'ID' => $post_id,
             'comment_status' => 'closed'
           );
           wp_insert_post($my_post);     
        }
    }
?>

get_the_category () ruft das Kategorieobjekt für den ausgewählten Beitrag ab. Weitere Informationen zu get_the_category () finden Sie in der Dokumentation .

Wenn Sie nicht wissen, was ein Aktions-Hook ist, sollten Sie diese Seite besuchen .

2
Wipqozn