Gibt es eine Möglichkeit, “Kommentare in Seiten auflösen” und “Kommentare zu alten Beiträgen schließen” bei bestimmten Beiträgen außer Kraft zu setzen, bei anderen nicht?

Unter Einstellungen> Diskussion gibt es eine Option zum “Teilen von Kommentaren in Seiten”, die Kommentare um Kommentare erweitert und sie in einzelne Seiten aufteilt.

Ich möchte dies auf meiner gesamten Website abschalten … ABER bei einem bestimmten Beitrag möchte ich, dass dieser eingeschaltet ist, so dass Post (und nur dieser Post) Kommentare paginiert hat.

Kann das gemacht werden?

Semi-related follow-up: Könnte diese Art von Sache mit der Option “automatisch schließen Kommentare für Posts älter als” getan werden? In diesem Fall sind die Kommentare zu allen Beiträgen nach X Tagen geschlossen, mit Ausnahme von 149, 150 und 151?

Vielen Dank im Voraus für jede Hilfe.

Solutions Collecting From Web of "Gibt es eine Möglichkeit, “Kommentare in Seiten auflösen” und “Kommentare zu alten Beiträgen schließen” bei bestimmten Beiträgen außer Kraft zu setzen, bei anderen nicht?"

Der Filter option_{$option_name} kann verwendet werden, um den Wert einer Option im option_{$option_name} zu ändern. Ersetzen Sie {$option_name} durch den Namen der zu {$option_name} Option.

Option Seitenumbruch überschreiben

Der Name der Option für paginierende Kommentare lautet page_comments . option_page_comments erstellen wir einen Filter namens option_page_comments . Im folgenden Beispiel überprüfen wir, ob wir einen der Posts in unserem ID-Array sehen, um die Paginierung zu erzwingen, und wenn dies der Fall ist, erzwingen wir die Paginierung von Kommentaren. Andernfalls wird der Wert auf dem Bildschirm Dashboard> Einstellungen> Diskussion verwendet.

 // Forces comment pagination for certain posts regardless // of settings within the Settings > Discussion page. add_filter( 'option_page_comments', 'wpse_modify_page_comments' ); function wpse_modify_page_comments( $page_comments ) { if ( is_admin() ) { return $page_comments; } // Array of post IDs where comment pagination is forced on. $force_comment_pagination = [ 149, 150, 151, ]; if ( in_array( get_the_ID(), $force_comment_pagination ) ) { $page_comments = true; } return $page_comments; } 

Überschreiben Schließen Kommentare für alte Posts Option

Beantworten der Folgefrage – Ja, wir können erzwingen, dass Kommentare für bestimmte ältere Posts aktiviert werden, auch wenn die Einstellungen auf dem Diskussionsbildschirm so konfiguriert sind, dass sie Kommentare zu alten Posts schließen.

 // Forces comments for old posts to be *allowed* regardless // of settings within the Settings > Discussion page. add_filter( 'option_close_comments_for_old_posts', 'wpse_modify_close_comments_for_old_posts' ); function wpse_modify_close_comments_for_old_posts( $close_comments_for_old_posts ) { // Don't do anything for the admin area. Return the originally set value of the option. if ( is_admin() ) { return $close_comments_for_old_posts; } // This array contains the posts IDs where we want to // override the settings for closing comments for old posts. // (Comments will be forced open for these posts.) $close_comments_for_old_posts_overrides = [ 149, 150, 151, ]; // Handle case when a comment is being made. if ( isset( $_POST['comment'] ) && isset( $_POST['comment_post_ID'] ) ) { if ( in_array( $_POST['comment_post_ID'], $close_comments_for_old_posts_overrides ) ) { // Comments should be open for this post. return false; } } // Handle case when post is displayed. global $wp_query; if ( ! is_array( $wp_query->posts ) ) { // There are no posts to display. Don't change the option. return $close_comments_for_old_posts; } foreach ( $wp_query->posts as $post ) { if ( in_array( $post->ID, $close_comments_for_old_posts_overrides ) ) { // Comments should be open for this post. return false; } } // If we get here, return the original value of the option without altering it. return $close_comments_for_old_posts; }