Es ist etwas falsch mit dem Skript, das letzte Beiträge von einem Wordpress-Blog zu einem anderen in verschiedenen Domänen kopiert.W3C RSS-Fehler nach dem Kopieren von Beiträgen von einem Blog zu einem anderen
Alles funktioniert gut und wir verwenden das Skript seit über einem Jahr. Nichtsdestotrotz werden die RSS-Feeds für die kopierten Beiträge niemals von W3C validiert.
Der typische Fehler von W3C für die Beiträge angezeigt werden, ist diese:
Dieser Feed lässt sich aber nicht. Zeile 25, Spalte 43: pubDate muss ein RFC-822 Datum-Uhrzeit sein: Mi, 30 Nov -0001 00:00:00 +0000 [Hilfe] Mi, 30 Nov -0001 00:00:00 +0000 In Darüber hinaus könnte die Interoperabilität mit den meisten Lesegeräten verbessert werden, indem die folgende Empfehlung umgesetzt wird. Zeile 28, Spalte 28: guid sollte nicht leer sein (8 Vorkommen) [Hilfe]
Das Skript wird außerhalb ausgeführt und hat keinen Zugriff auf WP-Funktionen oder die wpdb
Klasse.
Alle Funktionen sind in einer Klasse. Hier ist der Code:
/**
*/
class CopyPostClass {
/**
* @param $PostTitle
* @param $PostContent
* @param $PostSlug
* @param $PostType
* @param $AuthorID
* @return bool
*/
public function SavePostTarget($PostTitle, $PostContent, $AuthorID, $PostSlug, $PostType) {
global $TargetLink;
$PostDate = new DateTime(date('Y-m-d H:i:s'));
$PostTitle = str_replace("'", '"', $PostTitle);
$SavePostQuery = "INSERT INTO wp_posts (
post_title,
post_content,
post_author,
post_name,
post_type,
post_date,
post_modified,
post_status
)
VALUES (
'" . $PostTitle . "',
'" . $PostContent . "',
'" . $AuthorID . "',
'" . $PostSlug . "',
'" . $PostType . "',
'" . $PostDate->format('Y-m-d H:i:s') . "',
'" . $PostDate->format('Y-m-d H:i:s') . "',
'publish'
)";
$SavePostResult = mysql_query($SavePostQuery, $TargetLink);
$SavedRows = mysql_affected_rows($TargetLink);
if ($SavePostResult && $SavedRows > 0) {
return TRUE;
}
else {
echo "ERROR Saving new post to target WP Blog!<br /><br />";
echo mysql_error() . "<br /><br />";
return FALSE;
}
}
/**
* @return resource
*/
public function ConnectSource() {
$SourceHost = 'SourceDomainn.com';
$SourceUsername = 'SourceDomainUserName';
$SourcePassword = 'SourceDomainPass';
$SourceDatabase = 'SourceDomainDataBase';
$SourceLink = mysql_connect($SourceHost, $SourceUsername, $SourcePassword);
mysql_select_db($SourceDatabase, $SourceLink) or die("Unable to select Source database");
mysql_set_charset('utf-8', $SourceLink);
if (!$SourceLink) {
echo "Conection to source WP Blog Database FAILED!<br /><br />";
die;
}
else {
return $SourceLink;
}
}
/**
* @return resource
*/
public function ConnectTarget() {
$TargetHost = 'TargetDomain.com';
$TargetUsername = 'TargetDomainUserName';
$TargetPassword = 'TargetDomainPass';
$TargetDatabase = 'TargetDomainDataBase';
$TargetLink = mysql_connect($TargetHost, $TargetUsername, $TargetPassword);
mysql_select_db($TargetDatabase, $TargetLink) or die("Unable to select Target database");
mysql_set_charset('utf-8', $TargetLink);
if (!$TargetLink) {
echo "Conection to target WP Blog Database FAILED!<br /><br />";
die;
}
else {
return $TargetLink;
}
}
}
Ich kann nicht herausfinden, wie Sie dieses Problem lösen und wird jede Hilfe von Ihnen zu schätzen wissen.
¿Sehen Sie ein Datum in der Post? Wenn ja, wie ist das Format und der Wert. –
Das ist eines der merkwürdigsten Dinge. Das Format ist korrekt und das Datum, an dem der Beitrag erstellt wurde. –