Ich habe ein Problem, bei dem auf der WP-Seite kein Link zum Discourse-Forum verfügbar ist. Hier sind einige Antworten auf Forenthemen, die ich dazu gefunden habe:
Alle Felder vom Typ „Textinhalt“ sind im WP-Admin → Plugin-Bereich ausgefüllt.
Die Synchronisierung läuft; ich kann die Kommentare auf beiden Seiten sehen.
Die URL-Zeichenfolge ist in der _postmeta-Datenbanktabelle verfügbar.
Der Kommentarbereich zeigt mir Hinweise:
**Hinweis**: Versuch, auf Array-Offset auf Wert vom Typ null zuzugreifen in **/home/u48255p44743/domains/fxweb.snowfreakz.nl/public_html/wp-content/plugins/wp-discourse/lib/discourse-comment-formatter.php** in Zeile **90**
**Hinweis**: Versuch, auf Array-Offset auf Wert vom Typ null zuzugreifen in **/home/u48255p44743/domains/fxweb.snowfreakz.nl/public_html/wp-content/plugins/wp-discourse/lib/discourse-comment-formatter.php** in Zeile **106**
**Hinweis**: Versuch, auf Array-Offset auf Wert vom Typ null zuzugreifen in **/home/u48255p44743/domains/fxweb.snowfreakz.nl/public_html/wp-content/plugins/wp-discourse/lib/discourse-comment-formatter.php** in Zeile **127**
**Hinweis**: Versuch, auf Array-Offset auf Wert vom Typ null zuzugreifen in **/home/u48255p44743/domains/fxweb.snowfreakz.nl/public_html/wp-content/plugins/wp-discourse/lib/discourse-comment-formatter.php** in Zeile **127**
**Hinweis**: Versuch, auf Array-Offset auf Wert vom Typ null zuzugreifen in **/home/u48255p44743/domains/fxweb.snowfreakz.nl/public_html/wp-content/plugins/wp-discourse/lib/discourse-comment-formatter.php** in Zeile **148**
**Hinweis**: Versuch, auf Array-Offset auf Wert vom Typ null zuzugreifen in **/home/u48255p44743/domains/fxweb.snowfreakz.nl/public_html/wp-content/plugins/wp-discourse/lib/discourse-comment-formatter.php** in Zeile **148**
Diese beziehen sich alle auf die $URL in der Datei. Ich rufe die Kommentare mit folgendem Code auf:
global $post;
use WPDiscourse\Utilities\Utilities as DiscourseUtilities;
$discourse_comments = DiscourseUtilities::get_discourse_comments($post->ID);
echo $discourse_comments;
Wenn ich den obigen direkten Aufruf einfüge, erhalte ich keinen Inhalt als Link zurück (fand ich in einem anderen Thema).
Ich verwende Apache / PHP7.4 / WP 6.0.2
Nach einigen Stunden Fehlerbehebung gehen mir die Optionen aus. Vielleicht hat jemand eine Idee!?
Vielen Dank im Voraus,
Danke für deine Nachricht … es ist eine “frische” WordPress-Installation, die den Bricks Template Builder verwendet, und ich habe gerade WPDiscourse für die Verbindung installiert. Abgesehen vom mod_headers Server-Caching gibt es keine anderen aggressiven Plugins, die Skripte verändern.
Ich habe gerade die direkte PHP-Zeile erneut hinzugefügt und … magischerweise ist die URL da. Keine Ahnung, was ich anders gemacht habe.
<?php
global $post;
use WPDiscourse\Utilities\Utilities as DiscourseUtilities;
$discourse_comments = DiscourseUtilities::get_discourse_comments($post->ID);
echo $discourse_comments;
echo get_post_meta( $post->ID, 'discourse_permalink', true );
?>
Aber ich habe immer noch die Hinweise, die sich auf Codezeilen beziehen, in denen die URL konstruiert werden sollte, und der Link nach “Continue the discussion at” wird nicht angezeigt.
Wenn ich die „main“-Kommentare von WordPress (ein Bricks-Vorlagenelement) einfüge, wird das „normale WP-Kommentarformular“ angezeigt, das nicht durch das Discourse-Bewertungs-Plugin ersetzt wird. Sehen Sie sich die obige URL an; ich habe das Layout geändert und die WP-Kommentare unter dem Blog hinzugefügt.
Deshalb habe ich den Code manuell hinzugefügt, da dies die Bewertungen anzeigte und wahrscheinlich alle Inkompatibilitäten des Bricks-Builders überschreibt.
Ok. Wahrscheinlich gibt es ein Problem mit der Lade Priorität des Template Builders, den Sie hier verwenden. Ich werde versuchen, es morgen nachzubilden. Bleiben Sie dran.
In der nächsten Version (2.4.6), die gerade für die Veröffentlichung vorbereitet wird, wird es verschiedene Aktualisierungen der Hilfsfunktion get_discourse_comments geben. Die aktualisierte Signatur der Hilfsmethode sieht wie folgt aus:
/**
* Ruft das Discourse-Kommentar-HTML ab, damit es angezeigt werden kann, ohne die Kommentarvorlage zu laden.
*
* @param int $post_id Die Beitrags-ID, für die die Kommentare angezeigt werden sollen.
* @param bool $perform_sync Bestimmt, ob beim Laden von Kommentaren möglicherweise eine Kommentarsynchronisierung durchgeführt wird.
* @param bool $force_sync Bestimmt, ob der Kommentar-Synchronisierungs-Cache beim Laden von Kommentaren umgangen wird.
* @param string $comment_type Art der Kommentar-Anzeige.
*
* @return string
*/
public static function get_discourse_comments( $post_id, $perform_sync = true, $force_sync = false, $comment_type ) {
@Joep_Kannegieter Dies wird einige Vorteile für Ihren Fall (und einige andere Fälle) haben:
Die Kommentar-Anzeige wird funktionieren
Sie steuern die Art der Kommentar-Anzeige (d. h. alle Kommentare oder Kommentar-Link) programmatisch
Es ist noch nicht veröffentlicht. Warten Sie, bis Sie Version 2.4.6 des Plugins in Ihrem Wordpress Admin-Panel zur Aktualisierung bereit sehen (ich werde Sie auch hier benachrichtigen).
Ich komme darauf zurück; im Grunde „ich bekomme es zum Laufen“, wenn auch nicht mit der Bricks Builder-Vorlage.
Wenn ich zum Thema twentytwenty wechsle, wird die Discourse-Integration unter dem Blogbeitrag angezeigt und ersetzt das Kommentarfeld
Wenn ich Bricks Builder verwende, gibt es ein Element „Kommentare“, das die WP-Kommentare lädt; das nicht durch das Plugin ersetzt wird. Auch nicht programmatisch aufgerufen mit:
Fehler: Zu wenige Argumente für die Funktion WPDiscourse\Utilities\Utilities::get_discourse_comments(), 1 übergeben in /home/u43655p432443/domains/domain.nl/public_html/wp-content/themes/bricks/includes/elements/code.php(159) : eval()'d code on line 4 und genau 4 erwartet
Es hat also mit Bricks zu tun. Ich werde auch die Bricks-Community fragen.
Dieser Fehler teilt Ihnen mit, dass Ihre Verwendung der Hilfsfunktion get_discourse_comments aktualisiert werden muss. Hier ist ein Beispiel, wie Sie sie verwenden könnten.
global $post;
use WPDiscourse\Utilities\Utilities as DiscourseUtilities;
$discourse_comments = DiscourseUtilities::get_discourse_comments($post->ID, true, true, 'display-comments');
echo $discourse_comments;