Erstellen Sie einen neuen Post in WordPress mit XML-RPC mit der richtigen GUID?

Wenn ich XML-RPC zum Erstellen eines neuen Posts anstelle von wp_insert_post verwende, wird der Post mit falscher GUID / URL erstellt. Mit XML-RPC wird die GUID mit ID nicht Slug erstellt.

// Input data $my_page = array(); $my_page["post_title"] = $alternatename_main; $my_page["post_content"] = $postcontent; $my_page["post_excerpt"] = $postexcerpt; $my_page["post_status"] = "publish"; $my_page["post_date"] = date("Ymd H:i:s"); $my_page["post_author"] = 1; $my_page['post_type'] = 'post'; $my_page["post_name"] = "test1234"; // Local insert $my_page_id = wp_insert_post($my_page); $wp_post_data = get_post($my_page_id); $wp_guid = $wp_post_data->guid; 

Ergebnis: $ wp_guid = http: // test / site / test1234 /

 // Insert XML-RPC include_once( ABSPATH . WPINC . '/class-IXR.php' ); include_once( ABSPATH . WPINC . '/class-wp-http-ixr-client.php' ); $client = new WP_HTTP_IXR_Client('http://test/site/xmlrpc.php'); $client -> debug = true; //optional but useful $username = "yyyyyy"; $password = "xxxxxx"; $params = array(0,$username,$password,$my_page); $clientresult = $client->query('wp.newPost', $params); $my_page_id = $client->getResponse(); $wp_guid = get_the_guid($my_page_id); 

Ergebnis: $ wp_guid = http: // test / site /? P = 12721

Ich habe getestet:

 $wp_post_data = get_post($my_page_id); $wp_slug = $wp_post_data->post_name; $my_page_update = array(); $my_page_update["guid"] = "http://test/site/".$wp_slug."/"; $params = array(0,$username,$password,$my_page_id,$my_page_update); $clientresult = $client->query('wp.editPost', $params); 

Aber es funktioniert nicht.

Die einzige Lösung, die ich finden kann, ist, rohe SQL zu verwenden:

 UPDATE wp_posts SET guid='"http://test/site/".$wp_slug."/"' WHERE ID=".$my_page_id ."; 

Ich kann keinen Grund sehen, warum der Beitrag mit unterschiedlichen Guid erstellt wird, beide Posts werden mit dem richtigen Slug erstellt. Ein Fehler in wp.newPost? Hat jemand eine Antwort? Der Test wird mit der gleichen WordPress-Installation durchgeführt.

Solutions Collecting From Web of "Erstellen Sie einen neuen Post in WordPress mit XML-RPC mit der richtigen GUID?"

Dies ist ein lästiges Problem, aber es gibt eine Möglichkeit, den richtigen Link zu bekommen, wenn ich Folgendes mache:

 $my_page_ask = array( 'link', 'guid' ); $params = array(0,$username,$password,$my_page_id, $my_page_ask); $clientresult = $client->query('wp.getPost', $params); $post = $client->getResponse(); 

Der String-Link enthält den richtigen Permalink wenn:

 $my_page["post_status"] = "publish"; 

Es funktioniert nicht im Entwurf und die String Guid enthält immer noch den falschen Wert.