it-swarm.com.de

Warum sind die Kommentare für meine custom_post_types standardmäßig deaktiviert?

Ich verwende einen benutzerdefinierten Beitragstyp + Taxonomien in einer Podcast-Lösung für einen Kunden. Die Einstellung (Einstellungen >> Diskussion) für Kommentare ist auf "Kommentare erlauben" gesetzt. Wenn ich Beiträge auf der Registerkarte "Beiträge" hinzufüge/bearbeite, sind Kommentare standardmäßig aktiviert.

Wenn ich jedoch Beiträge unter dem benutzerdefinierten Beitragstyp (Podcast) hinzufüge/bearbeite, sind Kommentare standardmäßig deaktiviert.

Der Benutzer kann weiterhin Kommentare für jeden Beitrag manuell aktivieren, dies ist jedoch offensichtlich nicht ideal. Gedanken?

UPDATE: Relevanter Code in functions.php

function create_my_post_types() {
    register_post_type( 'podcast',
        array(
            'labels' => array(
                'name' => __( 'Podcast' ),
                'singular_name' => __( 'Podcast' ),
                'new_item' => __( 'New Episode' ),
                'add_new_item' => __( 'Add New Episode' )
            ),
            'public' => true,
            'hierarchical' => true,
            'menu_icon' => get_stylesheet_directory_uri() . '/assets/podcast-icon.png', // 16px16
            'menu_position' => 9,
            'supports' => array( 'title', 'editor', 'comments', 'post-templates'),
            'register_meta_box_cb' => 'add_podcast_metaboxes' // This registers the metabox that we'll add later.
        )
    );
}
6
timshutes

Ok - also habe ich das gelöst. Hier scheint das Problem zu liegen.

Kommentare sind für benutzerdefinierte Beitragstypen standardmäßig deaktiviert. Dies geschieht auch wenn Sie sie in den Gesamteinstellungen aktiviert haben

Um das Problem zu beheben, musste ich nur Folgendes tun:

  1. Deaktivieren Sie unter EINSTELLUNGEN> DISKUSSION die Einstellung "Personen erlauben, Kommentare zu neuen Artikeln zu veröffentlichen".
  2. Klicken Sie auf "Änderungen speichern"
  3. Gehen Sie jetzt zurück und aktivieren Sie erneut die Option "Personen erlauben, Kommentare zu neuen Artikeln zu posten".
  4. Klicken Sie auf "Änderungen speichern"

Es scheint, dass Sie für benutzerdefinierte Beitragstypen diese Einstellung aktivieren müssen. Für alle neuen Beiträge für erstellte benutzerdefinierte Beitragstypen ist das Kontrollkästchen standardmäßig aktiviert. Bestehende Posts behalten ihre vorherige Einstellung bei. Ich gehe davon aus, dass dies auch für das Zulassen von Trackbacks gilt. Hoffentlich hilft das jemandem ...

11
timshutes

Dies ist der Standardstatus. Sie müssen die Zeile "Unterstützungen" ändern, in der Sie Ihren benutzerdefinierten Beitragstyp erstellen.

Bedeutet diese Zeile:

// oder etwas Ähnliches, das dasselbe startet

'supports' => array('title','editor','author','excerpt','revisions'),

Zu dieser Zeile:

'supports' => array('title','editor','author','excerpt','comments','revisions'),

Hoffe das hilft.
Prost, Sagive.

HINZUGEFÜGTE FUNKTION (INNERE FUNKTIONSDATEI):

function default_comments_on( $data ) {
    if( $data['post_type'] == 'your_custom_post_name' ) {
        $data['comment_status'] = 1;
    }

    return $data;
}
add_filter( 'wp_insert_post_data', 'default_comments_on' );
7
Sagive SEO

Keiner der folgenden Vorschläge hat für mich funktioniert. Sagive SEOs Funktion hat bei mir fast funktioniert. Ich habe meine Datenbank überprüft und festgestellt, dass die einzigen Werte für comment_status offen und geschlossen sind. Diese Funktion hat 1 als Wert eingefügt. Ich habe die Funktion überarbeitet und es scheint jetzt perfekt zu funktionieren. Ich hoffe das hilft jemandem.

function default_comments_on( $data ) {
    if( $data['post_type'] == 'your_custom_post_type_name' ) {
        $data['comment_status'] = 'open';
    }

    return $data;
}
add_filter( 'wp_insert_post_data', 'default_comments_on' );
2
JediTricks007

Nehmen Sie einfach einen Stich nach dem Zufallsprinzip, aber müssen Sie dem Array-Parameter supported im Aufruf register_post_type() "comments" hinzufügen?

1
Jason Rhodes