it-swarm.com.de

Post in eine andere Datenbank einfügen

Ich habe ein benutzerdefiniertes Skript entwickelt, das wp_insert_post verwendet, um neue Beiträge zu erstellen. Ich möchte jedoch ähnlichen Code verwenden, um dieselben Daten in einer anderen WP-Datenbank zu erstellen. Könnte dies im laufenden Betrieb vor dem Einsetzen erfolgen? Zum Beispiel WordPress anweisen, auf eine andere Datenbank zu verweisen und dann Daten einzufügen? Oder sollte ich dies "manuell" mit rohem mySQL-Code tun?

1
Riccardo

Sie können SQL vollständig vermeiden und die XML-RPC-API verwenden. Auf diese Weise können Sie auch auf Remote-WordPress-Installationen posten.

(wenn XML-RPC keine Option ist, scrollen Sie weiter nach unten)

Bei Verwendung von XML-RPC

Hier ist ein Code aus einer schnellen Google-Suche mit XML-RPC zum Posten in einem entfernten Wordpress-Blog:

http://en.forums.wordpress.com/topic/great-code-for-remote-posting?replies=5

Im Folgenden finden Sie einige Beispiele mit einer Erläuterung der XML-RPC-APIs

http://life.mysiteonline.org/archives/161-Automatic-Post-Creation-with-Wordpress,-PHP,-and-XML-RPC.html

Und hier ist ein Beispiel aus WP-Rezepten mit Curl und XML-RPC:

http://www.wprecipes.com/post-on-your-wordpress-blog-using-php

function wpPostXMLRPC($title,$body,$rpcurl,$username,$password,$category,$keywords='',$encoding='UTF-8') {
    $title = htmlentities($title,ENT_NOQUOTES,$encoding);
    $keywords = htmlentities($keywords,ENT_NOQUOTES,$encoding);

    $content = array(
        'title'=>$title,
        'description'=>$body,
        'mt_allow_comments'=>0,  // 1 to allow comments
        'mt_allow_pings'=>0,  // 1 to allow trackbacks
        'post_type'=>'post',
        'mt_keywords'=>$keywords,
        'categories'=>array($category)
    );
    $params = array(0,$username,$password,$content,true);
    $request = xmlrpc_encode_request('metaWeblog.newPost',$params);
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
    curl_setopt($ch, CURLOPT_URL, $rpcurl);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 1);
    $results = curl_exec($ch);
    curl_close($ch);
    return $results;
?>

Wenn doch, dass XML-RPC nicht für Sie ist

Vielleicht ist eine WordPress-Multisite das Beste für Sie? Das Erstellen des neuen Beitrags ist so einfach wie das Aufrufen von switch_to_blog($blog_id); und das Erstellen des neuen Beitrags vor dem Aufrufen von restore_current_blog();.

Wenn Sie SQL verwenden MÜSSEN

Verwenden Sie diese von mike23 mit verknüpfte Frage, um über ein wpdb-Objekt Zugriff zu erhalten

1
Tom J Nowell