Сообщение WordPress XML-RPC для определенной категории

Я пробовал довольно долгое время, и все же он публикуется только как «Без рубрики». В документации указано, что в качестве идентификатора категории используется целочисленное значение, но это не работает. Я также пробовал записывать название категории, как есть, и в нижнем регистре, а также вводить 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)); 

Надеюсь, это поможет кому-то в будущем!