Я пробовал довольно долгое время, и все же он публикуется только как «Без рубрики». В документации указано, что в качестве идентификатора категории используется целочисленное значение, но это не работает. Я также пробовал записывать название категории, как есть, и в нижнем регистре, а также вводить slug. Согласно документации, я делаю все правильно, но это все еще не работает! wp.newPost, и поскольку он использует wp_insert_post () .
public function create_post( $title, $body ) { $title = htmlentities( $title, ENT_NOQUOTES, 'UTF-8' ); $content = array( 'post_category' => array( 18 ), // my category id 'post_type' => 'post', 'post_status' => 'pending', 'post_title' => $title, 'post_content' => $body, 'comment_status' => 'closed', ); $params = array( 0, $this->username, $this->password, $content ); return $this->send_request( 'wp.newPost', $params ); }
Эй, я недавно начал использовать новый API.
Вы должны использовать параметр terms_names в запросе XML-RPC, как указано в новых документах:
http://codex.wordpress.org/XML-RPC_WordPress_API/Posts#wp.newPost
Пример:
Ваш код должен быть изменен, чтобы выглядеть примерно так.
public function create_post( $title, $body ) { $title = htmlentities( $title, ENT_NOQUOTES, 'UTF-8' ); $content = array( 'post_type' => 'post', 'post_status' => 'pending', 'post_title' => $title, 'post_content' => $body, 'terms' => array('category' => array( 18 ) ), 'comment_status' => 'closed', ); $params = array( 0, $this->username, $this->password, $content ); return $this->send_request( 'wp.newPost', $params ); }
У меня есть одна проблема с этим методом API, однако идентификатор сообщения не возвращается только ложное логическое значение. Дайте мне знать, если вам повезло с вставкой категорий, и если вам удастся получить POST-идентификатор.
Спасибо, это спасатель жизни! Если вам нужно предоставить теги для своего сообщения, вы можете передать их в массиве с tags_input
свойства tags_input
, например:
$content['tags_input'] = "action, adventure, thriller";
Если вам нужно передать конкретную отметку времени, вы должны использовать следующий формат
D, d MYH:i:s +0000
и передать его, используя post_date
или post_date_gmt
:
$content['post_date_gmt | post_date'] = date("D, d MYH:i:s +0000", strtotime($your_specific_date_and_time));
Надеюсь, это поможет кому-то в будущем!