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.
)
);
}
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:
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 ...
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' );
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' );
Nehmen Sie einfach einen Stich nach dem Zufallsprinzip, aber müssen Sie dem Array-Parameter supported im Aufruf register_post_type()
"comments" hinzufügen?