Intereting Posts
Добавление статистики пользовательских сообщений в пользовательский вид панели управления Как создать вложенную структуру страницы? сравнить meta_query в аргументах get_posts Поле категории slug отсутствует с зарегистрированной пользовательской таксономией Сортировка массива настраиваемого типа сообщений get_query_var возвращает неправильное значение по умолчанию Как перехватить ошибку 404 Создание каталога и файла с использованием встроенной файловой системы wordpress дублировать функции раздела комментариев и называть его чем-то другим для пользовательских типов сообщений Не удается выполнить echo get_delete_post_link Невозможно добавить дополнительные элементы в основной навигатор (wp_nav_menu_items) Подтверждение перед удалением параметров плагина с помощью uninstall.php wpdb получить результаты не работает с переменной Сортировка по столбцу сайта / блога в Multisite Добавление класса к следующему / предыдущему изображению в файле attachment.php

Создать новое сообщение в wordpress с XML-RPC с правильным GUID?

Когда я использую XML-RPC для создания нового сообщения вместо wp_insert_post, сообщение создается с неправильным указателем / URL. С помощью XML-RPC директива создается с идентификатором не slug.

// 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; 

Результат: $ 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); 

Результат: $ wp_guid = http: // test / site /? P = 12721

Я тестировал:

 $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); 

Но это не сработает.

Единственное решение, которое я могу найти, – использовать raw sql:

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

Я не могу понять, почему сообщение создается с помощью другого guid, оба сообщения создаются с правильным пулемётом. Ошибка в wp.newPost? Кто-нибудь имеет ответ? Тест выполняется на той же установке WordPress.

Solutions Collecting From Web of "Создать новое сообщение в wordpress с XML-RPC с правильным GUID?"

Это раздражающая проблема, но есть способ получить правильную ссылку, если я это сделаю:

 $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(); 

Строковая ссылка содержит правильную ссылку, если:

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

Он не работает над черновиком, и строка guid все еще содержит неправильное значение.