J'essaie d'obtenir du contenu brut via REST API
Quand j'appelle " http: //mysite.tld/wp-json/wp/v2/pages/456 " Je reçois du contenu rendu
"content": {
"rendered": "<div id=\"something\"></div>\n",
"protected": false
},
mais je veux que le contenu ne soit pas rendu
LE: J'ai trouvé quelque chose dans /wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php
if ( ! empty( $schema['properties']['content'] ) ) {
$data['content'] = array(
'raw' => $post->post_content,
/** This filter is documented in wp-includes/post-template.php */
'rendered' => post_password_required( $post ) ? '' : apply_filters( 'the_content', $post->post_content ),
'protected' => (bool) $post->post_password,
);
}
Si je remplace
'rendered' => post_password_required( $post ) ? '' : apply_filters( 'the_content', $post->post_content ),
avec
'rendered' => $post->post_content,
ça marche bien mais comment puis-je éditer ça depuis un plugin personnalisé? btw: j'ai remarqué "brut" est absent de la réponse de l'API
Ceci est attendu, car cela dépend du context .
Le contenu brut apparaîtra pour le contexte edit
mais pas pour le contexte view
ou embed
.
Il est filtré par la méthode WP_REST_Controller::filter_response_by_context()
.
Vous pouvez toujours ajouter un nouveau champ à la réponse avec register_rest_field()
où le rappel get_callback
reçoit un tableau en entrée avec des données de publication, y compris le contenu brut.
Mais alors vous devriez faire attention à ne pas fuir, par exemple. les messages protégés par mot de passe ou le contenu masqué avec des codes courts.