私はREST APIを通して生のコンテンツを得ようとしています
" http://mysite.tld/wp-json/wp/v2/pages/456 "を呼び出すと、レンダリングされたコンテンツが表示されます
"content": {
"rendered": "<div id=\"something\"></div>\n",
"protected": false
},
コンテンツをレンダリングしないようにしたい
LE:/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,
);
}
取り替えたら
'rendered' => post_password_required( $post ) ? '' : apply_filters( 'the_content', $post->post_content ),
と
'rendered' => $post->post_content,
うまく機能しますが、カスタムプラグインからこれを編集するにはどうすればよいですか。ところで:私は "生" API応答から欠落している気づいた
これは context に依存するため、予想されることです。
生のコンテンツはedit
に対して表示されますが、view
またはembed
コンテキストに対しては表示されません。
それはWP_REST_Controller::filter_response_by_context()
メソッドを通してフィルタリングされます。
register_rest_field()
を使用して、いつでもレスポンスに新しいフィールドを追加できます。ここで、get_callback
コールバックは、生データを含む投稿データを含む入力配列を受け取ります。
しかし、それからあなたは漏れないように気をつけなければなりません。パスワードで保護された投稿またはショートコードで隠されたコンテンツ。