WordPress

WordPress-Kommentare zu einem anderen Beitrag verschieben

14. Juli 2015 · Anwendungen · andreas · 2 Kommentare

WordPress bietet standardmäßig keine Möglichkeit, Kommentare zwischen verschiedenenen Beiträgen (und / oder Seiten) zu verschieben. Gerade für einmalig durchzuführende Aufräum- oder Umbauarbeiten macht es allerdings auch wenig Sinn, sich auf die Suche nach einem zuverlässigen und vertrauenswürdigem Plugin zu begeben, da die Aufgabe auch mit einigen wenigen SQL-Statements zu erledigen ist.

Zunächt müssen die IDs der beiden Beiträge ermittelt werden, zwischen denen verschoben werden soll. Wer das nicht direkt in der Datenbank erledigen will, kann auch die WordPress-Oberfläche zu Rate ziehen: einfach beim jeweiligen Artikel auf “Bearbeiten” klicken und die ID aus der URL entnehmen, z.B. “/wp-admin/post.php?post=3527&action=edit”.

Dann können die Kommentare verschoben werden:

UPDATE wp_comments SET comment_post_id = <neue_ID> WHERE comment_post_id = <alte_ID>;

Anschließend muß noch die Anzahl der zu einem Beitrag vorhandenen Kommentare korrigiert werden, was nach zwei weiteren SQL-Befehlen erledig ist:

UPDATE wp_posts SET comment_count = 0 WHERE ID = <alte_ID>; UPDATE wp_posts SET comment_count = (SELECT COUNT(*) FROM wp_comments WHERE comment_post_ID = <neue_ID> AND comment_approved = 1) WHERE ID = <neue_ID>;

Nach der Verschiebung sind mit dem alten Beitrag keinerlei Kommentare mehr verknüpft, weshalb hier die Anzahl direkt auf “0” gesetzt werden kann. Für den neuen Beitrag ist die Anzahl der Kommentare zu ermitteln, wobei für die Spate “comment_count” nur die tatsächlich genehmigten Kommentare gezählt werden dürfen.


Pingbacks und Trackbacks global abschalten

27. Mai 2013 · Anwendungen · andreas · 4 Kommentare

Wird in WordPress der Haken bei “Erlaube Link-Benachrichtigungen von anderen Weblogs (Pingbacks und Trackbacks)” unter “Einstellungen” / “Diskussion” entfernt, so hat dies lediglich Auswirkung auf alle zukünftigen Beiträge. Die Einstellung für alle Beiträge, die zum Zeitpunkt des Umschaltens bereits fertiggestellt waren, wird hierdurch nicht geändert.

Abhilfe schaffen zwei SQL-Statements:

UPDATE wp_posts set ping_status='closed' WHERE post_status='publish' AND post_type='post'; UPDATE wp_posts set ping_status='closed' WHERE post_status='publish' AND post_type='page';

Joomla! nach WordPress migrieren

02. Juni 2012 · Anwendungen · andreas · 2 Kommentare

Statt eine Joomla!-Installation von der Version 1.5 auf die Version 2.5 zu migrieren kann es für kleine Websites auch eine Überlegung wert sein, eine Migration auf WordPress durchzuführen.

Wordpress ist zwar eigentlich als Blog-System gedacht, lässt sich aber ohne große Umstände als CMS “missbrauchen”.

Vollständigen Beitrag lesen


Zusätzlichen WordPress-Feed anhand benutzerdefinierter Felder erstellen

25. Juli 2011 · Anwendungen · andreas · 2 Kommentare

Obwohl WordPress vielfältige Möglichkeiten bietet, mittels RSS-Feeds auf die Inhalte eines Blogs zuzugreifen, ist in der Grundinstallation keine Möglichkeit vorgesehen, einen individuellen Feed anhand eines (oder mehrerer) benuzerdefinierter Felder zu erstellen.

Ein solcher Feed kann allerdings mit nur wenigen Zeilen Programmcode in der Datei “functions.php” des aktuell gewählten Themes ergänzt werden. Die Zeile

add_action('init', 'mycustomfeed_add_feed');

fügt der WordPress-Initialisierung die eigene Funktion “mycustomfeed_add_feed” hinzu, welche die Einrichtung der benötigten Funktionalität übernimmt.

function mycustomfeed_add_feed() { global $wp_rewrite; add_feed('mycustomfeed','mycustomfeed_feed'); add_action('generate_rewrite_rules', 'mycustomfeed_rewrite_rules'); $wp_rewrite->flush_rules(); }

Die Funktion besteht aus dem Hinzufügen des eigenen Feeds mittels der Funktion add_feed, sowie dem Hinzufügen einer Rewrite-Regel mit Hilfe der Funktion add_action, bevor durch den Aufruf von flush_rules die soeben geänderten Regeln neu eingelesen werden.

function mycustomfeed_rewrite_rules($wp_rewrite) { $my_rules = array( 'feed/(.+)' => 'index.php?feed=' . $wp_rewrite->preg_index(1) ); $wp_rewrite->rules = $my_rules + $wp_rewrite->rules; }

Die hinzugefügte Regel bewirkt das Umschreiben aller aufgerufenen URLs nach dem Schema “/feed/irgendwas” in die Form “?feed=irgendwas”, so daß zum Zugriff auf den neuen Feed auch die erste Schreibweise verwendet werden kann, ohne daß Änderungen an der “.htaccess” vorgenommen werden müssen.

function mycustomfeed_feed() { query_posts('meta_key=mycustomfeed&amp;meta_value=1'); include('wp-includes/feed-rss2.php'); }

Als letztes ändert die eigene Feed-Funktion die Auswahl der auszuliefernden Daten mit Hilfe der Funktion query_posts, bevor durch Aufruf des originalen WordPress-Feedmechanismus die Ausgabe generiert wird.

Im obigen Beispiel werden nur die Beiträge ausgeliefert, die ein benutzerdefiniertes Feld mit Namen “mycustomfeed” und dem Wert “1” enthalten.


XML-RPC in Wordpress aktivieren

23. Juli 2011 · Anwendungen · andreas · Kein Kommentar

Beim Versuch, mittels offiziellen WordPress-Android-Client auf ein Blog zuzugreifen erscheint bei abgeschaltetem XML-RPC nur die Fehlermeldung

XMLRPC Fault: XML-RPC-Dienste sind auf diesem Blog deaktiviert. Ein Administrator kann sie hier aktivieren: http://<blog-url>/wp-admin/options-writing.php [code 405]

Wie aus der Fehlermeldung indirekt zu entnehmen vertsteckt sich der Schalter “XML-RPC” im Untermenü “Schreiben” der “Einstellungen”.