私はVersion 2.0-beta15
を使用していますが、WP_REST_Posts_Controllerを継承するカスタム投稿タイプを使用していますが、acfフィールドに基づいて日付を照会する必要があります。 Yikes!WP-API特定の日付の後に投稿を取得する
エンドポイントPARAMS
/wp-json/wp/v2/almanac_entry?per_page=3&filter[orderby]=acf_almanac_date&after=2016-12-23T00:00:00&filter[date_query[column]]=acf_almanac_date
応答
応答は三つの項目を返す2つだけが記載されている日付の後にある2つのことが、第三の前であるべきですリストされた日付。
- 2016-12-31T00:00:00
- 2016-12-24T00:00:00
- 2016-12-17T00:00:00以下
acf_almanac_date
フィールドの三の項目の値であります(この日付は、日付の前にある2016-12-23T00:00:00と戻ってきたはずです)
コード
アクションが登録されているような:
add_action('init', 'register_custom_post_types');
function register_custom_post_types() {
global $wp_post_types;
$post_type_name = 'almanac_entry';
if(isset($wp_post_types[ $post_type_name ])) {
$wp_post_types[$post_type_name]->show_in_rest = true;
$wp_post_types[$post_type_name]->rest_base = $post_type_name;
$wp_post_types[$post_type_name]->rest_controller_class = 'WP_REST_Posts_Controller';
}
}
add_action('rest_api_init', 'wp_rest_add_custom_fields');
function wp_rest_add_custom_fields() {
register_rest_field('almanac_entry', 'acf_almanac_date', array (
'get_callback' => function($object, $field_name, $request) {
return get_post_meta($object[ 'id' ], 'almanac_date', true) . "T00:00:00";
},
'update_callback' => null,
'schema' => null,
));
}
ご協力いただきまして誠にありがとうございます。
黙示録1
おそらく、PARAM filter[date_query[column]]=acf_almanac_date
はwp_rest_add_custom_fields
機能に動的に追加されたフィールドacf_almanac_date
用WP-APIのクエリを持っている、と私に起こりました。
多分WP_REST_Posts_Controllerを拡張してprepare_items_query
関数をオーバーライドする必要がありますか?真の場合、どうすればACFフィールドacf_almanac_date
に関連付けることができますか?オイベイ!
感謝。クイック質問。 almanac_dateが「2016-12-31」、「2016-12-24」、「2016-12-17」、「2016-12-10」、「2016-12-03」、および'/ wp-json/wp/v2/almanac_entry?almanac_date_after = 2016-12-20T00:00:00'のエンドポイントを押すと、' 2016-12-31'、 '2016-12-24'しかし、私はすべて5を得る。私はあなたがWP 4.7を思い付いたことを知っている。たぶん私はそれを実行していない(私は見なければならないだろう)、またはおそらく私はparamが足りない? :( –
バージョン4.6.1を実行しています。更新する必要があるかもしれません。あなたが明示的に4を呼び出すので、これが問題です。7、それはWP REST API Version 2.0-beta15プラグインを使用しているわけではありません。 –
WordPress 4.7は12月6日にリリースされます。 Beta Testerプラグインを使用して、今すぐリリース候補に更新することができます。https://wordpress.org/plugins/wordpress-beta-tester/ –