Dies sind nicht mit WordPress erstellte Seiten also einfach hinzufügen <?php comments_template(); ?> funktioniert nicht.
irgendwelche Ideen, wie man dieses Problem löst? vielen Dank im Voraus
Bitte hinterlassen Sie einen Kommentar, wenn etwas unklar ist 🙂
Das geht meines Wissens nach nicht. Es hat damit zu tun, wie WordPress Dinge in der Datenbank speichert. Sie verwenden das falsche Werkzeug für den Job. Versuchen Sie etwas wie Disqus oder Echo.
– Mattbasta
26. Mai 2010 um 17:25 Uhr
keine Chance. mein kommentarsystem in diesem blog ist so modifiziert, dass ich das normale kommentarsystem von wordpress verwenden muss
– Wahl
31. Mai 2010 um 7:00 Uhr
Ich sehe keinen Grund, mich an das Kommentarsystem von WordPress zu halten, wenn es sich um Kommentare auf separaten Seiten des Blogs handelt. Wenn Sie sich gegen die WP-Datenbank von Benutzern authentifizieren möchten, ist dies eine völlig andere Frage und kann einfach durchgeführt werden. Sie können ein neues Kommentarsystem bestellen oder selbst programmieren.
– Vladislav Rastrusny
31. Mai 2010 um 11:11 Uhr
Das aktuelle Kommentarsystem hat spezielle Felder, authentifiziert sich bei den WP-Benutzern und einem damit verknüpften Forensystem. Das ist der Grund, warum ich das Wp-Kommentar-System verwenden würde. Außerdem möchte ich die Möglichkeit haben, die Kommentare im Backend von WP zu verwalten.
– Wahl
31. Mai 2010 um 12:41 Uhr
Ist es wirklich die ganze Arbeit wert, WP zu hacken? Gibt es kein Disqus-Plugin für WP, das die Kommentare in der Datenbank speichert? Ist das kein Feature in WP 3.0?
– Kevin
2. Juni 2010 um 17:00 Uhr
Der tote Sanitäter
Wenn ein Kommentar in der WordPress-Datenbank gespeichert wird, wird auch die ID des Beitrags (oder der Seite), auf die sich der Kommentar bezieht, gespeichert.
Das Problem ist, dass Sie versuchen, Kommentare mit WordPress zu speichern, aber für eine Seite, die es eigentlich nicht tut kennt um.
Also, wie wäre es, wenn wir eine erstellen WordPress Seite für jeden real Seite, sondern lediglich als Darstellungdamit Ihre realen Seiten und WordPress eine gemeinsame Grundlage für die Zusammenarbeit haben.
Der Plan hier ist also;
Laden Sie WordPress im Hintergrund auf jeder der „echten“ Seiten.
Prüfen Sie, ob für die „echte“ Seite bereits eine WordPress-Seitendarstellung vorhanden ist
Wenn dies nicht der Fall ist, erstellen Sie es, dann und dort
Bringen Sie WordPress dazu, zu glauben, dass wir tatsächlich die Darstellung sehen
Verwenden Sie weiterhin alle Funktionen und „Template-Tags“ von WP wie gewohnt
Dieser Code sollte sich irgendwo am Anfang der Vorlagendatei befinden, die zum Rendern Ihrer „echten“ Seiten verwendet wird;
include ('../path/to/wp-load.php');
// remove query string from request
$request = preg_replace('#\?.*$#', '', $_SERVER['REQUEST_URI']);
// try and get the page name from the URI
preg_match('#podpages/([a-z0-9_-]+)#', $matches);
if ($matches && isset($matches[1])) {
$pagename = $matches[1];
// try and find the WP representation page
$query = new WP_Query(array('pagename' => $pagename));
if (!$query->have_posts()) {
// no WP page exists yet, so create one
$id = wp_insert_post(array(
'post_title' => $pagename,
'post_type' => 'page',
'post_status' => 'publish',
'post_name' => $pagename
));
if (!$id)
do_something(); // something went wrong
}
// this sets up the main WordPress query
// from now on, WordPress thinks you're viewing the representation page
}
AKTUALISIEREN
Ich kann nicht glauben, dass ich so dumm war. Unten sollte der aktuelle Code von innen nach außen ersetzt werden if;
// try and find the WP representation page - post_type IS required
$query = new WP_Query(array('name' => $pagename, 'post_type' => 'page'));
if (!$query->have_posts()) {
// no WP page exists yet, so create one
$id = wp_insert_post(array(
'post_title' => $pagename,
'post_type' => 'page',
'post_status' => 'publish',
'post_name' => $pagename,
'post_author' => 1, // failsafe
'post_content' => 'wp_insert_post needs content to complete'
));
}
// this sets up the main WordPress query
// from now on, WordPress thinks you're viewing the representation page
// post_type is a must!
wp(array('name' => $pagename, 'post_type' => 'page'));
// set up post
the_post();
PS Ich denke, mit der query_var name Über pagename ist besser geeignet – es fragt den Slug ab und nicht den Slug-‘Pfad’.
Sie müssen auch entweder eine Eingabe innerhalb des Formulars mit name redirect_to und einen Wert der URL, zu der Sie umleiten möchten, oderfiltern Sie die Weiterleitung mit einer angehängten Funktion comment_post_redirectdie die richtige URL zurückgibt.
Das Hinzufügen einer Seite funktioniert also, aber die Kommentarvorlage wird nicht angezeigt. ich denke wp(array(‘pagename’ => $pagename)); hat immer noch keine wirkung 🙁
– Wahl
10. Juni 2010 um 12:02 Uhr
Okay, Dumping von $wp sagt, dass der Seitenname gesetzt ist, aber Kommentare werden immer noch nicht angezeigt, auch andere Dinge wie Permalink sollten jetzt funktionieren, aber sie tun es nicht, oder?
– Wahl
10. Juni 2010 um 12:40 Uhr
‘post_type’ => ‘post’ funktioniert besser, aber es wäre 1000 Mal besser, sie als Seiten zu haben
– Wahl
10. Juni 2010 um 12:54 Uhr
Okay, bleib bei dem, was ich ursprünglich gepostet habe, aber ersetze das wp() mit anrufen $wp_query = new WP_Query(array('pagename' => $pagename)). Wenn das fehlschlägt, globalisiere $wp_query kurz vorher mit global $wp_query;
– Der tote Sanitäter
10. Juni 2010 um 14:08 Uhr
Nein, da steht “Kommentare sind geschlossen”. rückt näher. Das Ablegen der Abfrage gibt mir die richtigen Dinge. aber immer noch das globale $post ist nicht gesetzt, aber ich denke, es wird benötigt, oder? irgendeine Idee ? 🙁
– Wahl
10. Juni 2010 um 15:17 Uhr
hinzufügen
require('/path/to/wp-blog-header.php');
um die wp-Dateien einzubinden. Dies sollte Ihnen alle Funktionen/Daten geben, die Sie benötigen.
ja das habe ich gemacht. aber comments_template(); funktioniert normalerweise nur innerhalb eines einzelnen Blogs oder Seitenbeitrags.
– Wahl
26. Mai 2010 um 15:11 Uhr
wahr wahr, Sie müssen möglicherweise jede Seite in Ihre Beitragstabelle einfügen und die Funktion comments_table anpassen, um ihr die ID der Seite zu geben
– Galen
26. Mai 2010 um 16:16 Uhr
Können Sie in WordPress Seiten erstellen, die Ihre Protokolldaten anzeigen? Möglicherweise benötigen Sie dafür eine neue Vorlage. WordPress hat dann etwas, mit dem die Kommentare verbunden werden können.
Pekka
Braucht man dafür WordPress? Wenn nicht, hilft vielleicht etwas in dieser SO-Frage: Unauffällige, selbst gehostete Kommentarfunktion zum Einfügen in bestehende Webseiten
ShoX
Versehen Sie einfach den WordPress-Kommentarteil mit einer neuen ID – beginnen Sie mit etwas, das Ihre üblichen Posts niemals erreichen werden (100.000+ sind Ihre Seiten, dh)
Ich weiß nicht genau, ob es in WordPress eine Funktion ist (saveComment dh), aber wenn es so ist, verwenden Sie es einfach auf Ihrer Seite mit der benutzerdefinierten ID. Das Kommentar-Formular müssen Sie jedoch selbst einfügen.
Und vergessen Sie nicht, die Abfrage zu ändern, die die Nachrichteneinträge erhält, dass IDs über 100.000 keine Einträge sind.
Oder Sie können Ihr eigenes Template schreiben, das den Standard-Worpress-Zeug mit IDs < 100.000 oder Ihre Seiten anzeigt.
Zusammenfassend sollte es nicht sehr schwierig sein.
ps: Wenn du nur den WordPress-Login benutzen willst, dann benutze ein beliebiges Kommentarsystem oder mach dir dein eigenes (es ist eine 1-Stunden-Sache) und authentifiziere / benutze die Worpress-Session.
13115600cookie-checkWordPress – Verwenden Sie das Kommentarsystem außerhalb von Seiten und Beiträgenyes
Das geht meines Wissens nach nicht. Es hat damit zu tun, wie WordPress Dinge in der Datenbank speichert. Sie verwenden das falsche Werkzeug für den Job. Versuchen Sie etwas wie Disqus oder Echo.
– Mattbasta
26. Mai 2010 um 17:25 Uhr
keine Chance. mein kommentarsystem in diesem blog ist so modifiziert, dass ich das normale kommentarsystem von wordpress verwenden muss
– Wahl
31. Mai 2010 um 7:00 Uhr
Ich sehe keinen Grund, mich an das Kommentarsystem von WordPress zu halten, wenn es sich um Kommentare auf separaten Seiten des Blogs handelt. Wenn Sie sich gegen die WP-Datenbank von Benutzern authentifizieren möchten, ist dies eine völlig andere Frage und kann einfach durchgeführt werden. Sie können ein neues Kommentarsystem bestellen oder selbst programmieren.
– Vladislav Rastrusny
31. Mai 2010 um 11:11 Uhr
Das aktuelle Kommentarsystem hat spezielle Felder, authentifiziert sich bei den WP-Benutzern und einem damit verknüpften Forensystem. Das ist der Grund, warum ich das Wp-Kommentar-System verwenden würde. Außerdem möchte ich die Möglichkeit haben, die Kommentare im Backend von WP zu verwalten.
– Wahl
31. Mai 2010 um 12:41 Uhr
Ist es wirklich die ganze Arbeit wert, WP zu hacken? Gibt es kein Disqus-Plugin für WP, das die Kommentare in der Datenbank speichert? Ist das kein Feature in WP 3.0?
– Kevin
2. Juni 2010 um 17:00 Uhr