Post an WordPress von einem anderen Server über PHP

Ich habe eine WordPress-Site auf – sagen wir mal – “site.com” und eine andere Site “input.com”, die an völlig verschiedenen Orten gehostet wird. Wie der Name schon sagt, sollte “input.com” als Eingabeseite mit einer sehr einfachen Form verwendet werden (zB Titel und Inhalt). Die eingegebenen Informationen sollten dann an “site.com” gesendet und als Blogpost veröffentlicht werden, so wie jemand die Informationen über das wp-admin-Panel eingegeben hat.

Normalerweise würde ich cURL dafür verwenden, aber da wp-admin panel ziemlich kompliziert ist (Login und so), habe ich nach anderen Möglichkeiten gesucht. Leider scheint die WordPress-API auf Daten von “site.com” beschränkt zu sein, bietet aber keine Möglichkeit, Daten an sie zu senden. Alle anderen APIs, die ich gefunden habe, funktionierten nicht (oder überhaupt nicht), weil sie entweder veraltet oder schlecht dokumentiert waren.

Gibt es einen einfachen Weg, dies zu tun, ohne ein cURL-Programm zu programmieren? Die vielversprechendste Sache, die ich bisher gefunden habe, ist diese: https://github.com/HarriBellThomas/Wordpress_PostController. Aber ich konnte es noch nicht funktionieren lassen. Ich würde deine Hilfe sehr schätzen!

Bearbeiten:

 "test",//wp_strip_all_tags( $_POST['post_title'] ), 'post_content' => "teeeeeeeessssssssssttttttttttt",// $_POST['post_content'], 'post_status' => 'publish', 'post_author' => 1, 'post_category' => array( 1,2 ) ); // Insert the post into the database wp_insert_post( $my_post ); ?> 

Solutions Collecting From Web of "Post an WordPress von einem anderen Server über PHP"

Ich habe es schließlich geschafft, die Aufgabe mit XML-RPC zu erledigen, wie es von denis.stoyanov vorgeschlagen wurde. Wenn xmlrpc auf Ihrem Server installiert ist, verwenden Sie einfach die wpPostXMLRPC-function von stackoverflow. Aber bedenken Sie, dass die verwendete xmlrpc_encode_request () eine experimentelle function ist, die Sie normalerweise vermeiden möchten.

Richten Sie ein Skript auf site.com ein, um die Daten von input.com zu erhalten, und verwenden Sie wp_insert_post() , um den Post auf site.com zu erstellen.

Der Titel, Inhalt und andere Post-Details werden mit der folgenden Array-Struktur gesendet:

 $post = array( 'ID' => [  ] // Are you updating an existing post? 'post_content' => [  ] // The full text of the post. 'post_name' => [  ] // The name (slug) for your post 'post_title' => [  ] // The title of your post. 'post_status' => [ 'draft' | 'publish' | 'pending'| 'future' | 'private' | custom registered status ] // Default 'draft'. 'post_type' => [ 'post' | 'page' | 'link' | 'nav_menu_item' | custom post type ] // Default 'post'. 'post_author' => [  ] // The user ID number of the author. Default is the current user ID. 'ping_status' => [ 'closed' | 'open' ] // Pingbacks or trackbacks allowed. Default is the option 'default_ping_status'. 'post_parent' => [  ] // Sets the parent of the new post, if any. Default 0. 'menu_order' => [  ] // If new post is a page, sets the order in which it should appear in supported menus. Default 0. 'to_ping' => // Space or carriage return-separated list of URLs to ping. Default empty string. 'pinged' => // Space or carriage return-separated list of URLs that have been pinged. Default empty string. 'post_password' => [  ] // Password for post, if any. Default empty string. 'guid' => // Skip this and let WordPress handle it, usually. 'post_content_filtered' => // Skip this and let WordPress handle it, usually. 'post_excerpt' => [  ] // For all your post excerpt needs. 'post_date' => [ Ymd H:i:s ] // The time post was made. 'post_date_gmt' => [ Ymd H:i:s ] // The time post was made, in GMT. 'comment_status' => [ 'closed' | 'open' ] // Default is the option 'default_comment_status', or 'closed'. 'post_category' => [ array(, ...) ] // Default empty. 'tags_input' => [ ', , ...' | array ] // Default empty. 'tax_input' => [ array(  => ,  =>  ) ] // For custom taxonomies. Default empty. 'page_template' => [  ] // Requires name of template file, eg template.php. Default empty. ); 

Lassen Sie die ID leer, um einen neuen Beitrag zu erstellen.

Ausführliche Dokumentation zum WP Codex: https://codex.wordpress.org/Function_Reference/wp_insert_post