2 votes

Wordpress XML-RPC poster vers une catégorie spécifique

J'ai essayé pendant un certain temps et je n'ai toujours pas réussi à afficher les messages sous le nom de "Uncategorized", Dans la documentation, il est indiqué d'utiliser une valeur entière comme ID de catégorie, mais cela ne fonctionne pas. J'ai également essayé d'écrire le nom de la catégorie tel quel, en minuscules, et d'entrer le slug. D'après la documentation, je fais tout correctement, mais cela ne fonctionne toujours pas ! wp.newPost et puisqu'il utilise 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 );
}

6voto

user979214 Points 76

J'ai récemment commencé à utiliser la nouvelle API.

Vous devez utiliser le paramètre terms_names dans votre requête XML-RPC comme indiqué dans la nouvelle documentation :

http://codex.wordpress.org/XML-RPC_WordPress_API/Posts#wp.newPost

Ejemplo:

Votre code devrait être modifié pour ressembler à quelque chose comme ceci.

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

J'ai cependant un problème avec cette méthode API, l'ID du message n'est pas renvoyé, mais seulement une valeur booléenne fausse. Faites-moi savoir si vous avez de la chance avec l'insertion des catégories et si vous réussissez à recevoir l'ID du POST.

0voto

omot Points 39

Merci, c'est un sauveur de vie ! Si vous avez besoin de fournir des balises pour votre article, vous pouvez les passer dans un tableau en utilisant tags_input comme ceci :

$content['tags_input'] = "action, adventure, thriller";

Si vous devez transmettre un horodatage spécifique, vous devez utiliser le format suivant

D, d M Y H:i:s +0000

et le transmettre en utilisant l'option post_date o post_date_gmt propriété :

$content['post_date_gmt | post_date'] = date("D, d M Y H:i:s +0000", strtotime($your_specific_date_and_time));

J'espère que cela aidera quelqu'un à l'avenir !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X