Ich versuche, die nach einem bestimmten Datum geänderten Beiträge über die WordPress-REST-API abzurufen (zu filtern). 2.0-beta15
& WordPress v4.8.3
und aktualisiere das mit den vorhandenen Beiträgen in meiner Client-App.
Verwenden after
und before
Von WordPress bereitgestellte Abfrageparameter, auf deren Grundlage ich Beiträge filtern kann date
Anstatt von modified
aufstellen.
Ich habe versucht /wp-json/wp/v2/posts?filter[date_query][0][column]=post_modified_gmt&filter[date_query][0][after]=1+month+ago
dies verwenden https://github.com/WP-API/rest-filter wie erwähnt in dieser Angelegenheitaber dieses date_query
Filter funktioniert jetzt auch nicht.
Ich brauche eine Option wie
http://bankersdaily.in/wp-json/wp/v2/posts?modified_after=2017-10-31T13:32:10&_envelope
http://bankersdaily.in/wp-json/wp/v2/posts?after=2017-10-31T13:32:10&field=modified&_envelope
Verweise:
https://developer.wordpress.org/rest-api/reference/posts/#list-posts
https://codex.wordpress.org/Class_Reference/WP_Query?#Date_Parameters
Es sieht so aus, als ob es nicht unterstützt wird, wenn Sie die Datei überfliegen Dokumente
Hier sind einige Problemumgehungen:
1) Benutzerdefiniert modified_after
Rest-Abfrageparameter
Wir können die hinzufügen modified_after
Rest-Abfrageparameter für die post
Beitragstyp mit:
add_filter( 'rest_post_collection_params', function( $query_params ) {
$query_params['modified_after'] = [
'description' => __( 'Limit response to posts published after a given ISO8601 compliant date.' ),
'type' => 'string',
'format' => 'date-time',
];
return $query_params;
} );
und ändern Sie dann die Rest-Post-Abfrage entsprechend mit:
add_filter( 'rest_post_query', function( $args, $request ) {
if( isset( $request['modified_after'] ) && ! isset( $request['after'] ) ) {
$args['date_query'][0]['after'] = $request['modified_after'];
$args['date_query'][0]['column'] = 'post_modified';
}
return $args;
}, 10, 2 );
wo wir lassen after
Vorrang haben modified_after
.
Beispiel:
/wp-json/wp/v2/posts??modified_after=2017-11-07T00:00:00
Anmerkungen:
Wir könnten verwendet haben modified_gmt_after
für die post_modified_gmt
Säule.
Es ist möglicherweise besser, einen eindeutigeren Namen als zu verwenden modified_after
um eine mögliche zukünftige Namenskollision zu vermeiden.
Um dies auf andere Beitragstypen auszudehnen, können wir die verwenden rest_{$post_type}_collection_params
und die rest_{$post_type}_query
Filter.
Eine weitere Option besteht darin, einen benutzerdefinierten Endpunkt und Parameter zu erstellen, das ist dort mehr Arbeit. Es stellt sich natürlich die Frage, ob wir der aktuellen Rest-API einen benutzerdefinierten Parameter hinzufügen sollten. In einigen Fällen sollte es in Ordnung sein, da wir die Antwort nicht entfernen oder ändern oder die Funktionsweise anderer Parameter ändern.
2) Benutzerdefiniert date_query_column
Rest-Abfrageparameter
Ein anderer Ansatz wäre die Einführung eines Brauchs date_query_column
Rest-Abfrageparameter:
add_filter( 'rest_post_query', function( $args, $request ) {
if ( ! isset( $request['before'] ) && ! isset( $request['after'] ) )
return $args;
if( isset( $request['date_query_column'] ) )
$args['date_query'][0]['column'] = $request['date_query_column'];
return $args;
}, 10, 2 );
add_filter( 'rest_post_collection_params', function( $query_params ) {
$query_params['date_query_column'] = [
'description' => __( 'The date query column.' ),
'type' => 'string',
'enum' => [ 'post_date', 'post_date_gmt', 'post_modified', 'post_modified_gmt', 'comment_date', 'comment_date_gmt' ],
];
return $query_params;
} );
das wäre verfügbar, wenn entweder after
oder before
Parameter eingestellt sind.
Beispiel:
/wp-json/wp/v2/posts??after=2017-11-07T00:00:00&date_query_column=post_modified
Ich hoffe es hilft!
Native Unterstützung – WordPress 5.7
Ab WordPress 5.7 wurde Unterstützung für die Abfrage nach dem Post-Modifikationsdatum anstelle des Veröffentlichungsdatums hinzugefügt. Benutzerdefinierte Problemumgehungen sind nicht mehr erforderlich.
Verwendungszweck:
/wp-json/wp/v2/posts??modified_after=2021-01-01T00:00:00Z
Anmerkungen: https://make.wordpress.org/core/2021/02/23/rest-api-changes-in-wordpress-5-7/
Ich habe ein WordPress-Plugin erstellt WP REST API – Filtern Sie Beiträge nach Datum mit der angegebenen Spaltewer Bedarf hat, kann dies nutzen.
Mit diesem Plugin können wir die Spalte angeben (jede von date
, date_gmt
, modified
, modified_gmt
) als Abfrageparameter date_query_column
um den/die eingegebenen Wert(e) abzufragen before
und/oder after
Abfrageparameter.
Verwendungszweck
Verwenden Sie die date_query_column
Parameter auf jedem Post-Endpunkt wie z /wp/v2/posts
oder /wp/v2/pages
in Kombination mit before
und/oder after
Parameter.
/wp-json/wp/v2/posts??after=2017-11-08T13:07:09&date_query_column=modified
Github-Repository vom selben.