मैं आपको WP API के साथ ऐसा करते हुए आपके अपडेट का एक छोटा सा जवाब दूंगा । एपीआई में WP_Query जैसे कोर में भी उपयोग करने की संभावनाएं हैं, लेकिन यूआरएल में पैरामीटर प्राप्त करें।
पोस्ट स्थिति से सामग्री खींचने के लिए एक URL इस तरह दिखेगा:
http://example.com/wp-json/posts
आपके द्वारा उपयोग किए जाने वाले WP_Query मापदंडों के साथ सामग्री खींचने के लिए, आप इसे इस तरह से कर सकते हैं:
http://example.com/wp-json/posts?filter[posts_per_page]=2&filter[order]=ASC
आप url में भी सभी मापदंडों के साथ अपनी कस्टम क्वेरी बना सकते हैं। आप देख सकते हैं कि WP_Query
मानक वर्डप्रेस लूप का उपयोग करने के लिए उस डेटा को हथियाने की विधि कैसे परिचित है । यदि आप कोई पैरामीटर निर्दिष्ट नहीं करते हैं, तो उपयोग की जाने वाली चूक का WP_Query
उपयोग किया जाएगा।
इसका परिणाम यह है कि आप बाहरी साइट के लिए पार्स और उपयोग कर सकते हैं।
अधिक मापदंडों और प्रलेखन के लिए एपीआई की साइट भी देखें ।
के लिए अपडेट करें date_query
API क्वेरी की तरह परिणाम नहीं बना सकता है query_date
। सभी संभावित मापदंडों के लिए प्रलेखन देखें ।
लेकिन नया संस्करण दृश्य दिनों, हफ्तों में रिलीज़ होगा। और इस समस्या के समाधान के बारे में चर्चा के लिए इस मुद्दे को देखें । वैकल्पिक हुक के माध्यम से एक कस्टम फ़िल्टर का उपयोग करें, जैसे:
// Allow datequery in /posts filter
add_filter( "json_query_vars", function( $query_args ) {
return array_merge( $query_args,
array( "date_query" => array( array( "after" => "1 week ago" ) ) )
);
} );
के लिए अपडेट करें meta_query
एपीआई भी डिफ़ॉल्ट WP-Query की इस सुविधा को नहीं कर सकता। लेकिन आप इस आवश्यकता को एपीआई बढ़ाने के लिए एक हुक का उपयोग कर सकते हैं। यहाँ एक छोटा सा उदाहरण भी दिया।
add_filter('json_query_var-meta_query', 'add_meta_query', 10, 1);
function add_meta_query( $data ){
$args = array();
$args['relation'] = 'AND';
foreach ( $data as $key => $value ) {
if ( 'relation' === $key ) {
$args['relation'] = $data['relation'];
}
if ( substr($key, 0, 3) === 'key' ) {
$arg_num = substr( $key, 3 );
$args[ (int) $arg_num ][ 'key' ] = $value;
}
if ( substr( $key, 0, 7 ) === 'compare' ) {
$arg_num_comp = substr( $key, 7 );
$args[ (int) $arg_num_comp ][ 'compare' ] = $value;
}
}
return $args;
}
अब, मैं JSON को इस तरह से संयत कह सकता हूं कि सर्वर पर पहले से ही Wp_query पोस्ट फ़िल्टर की नकल करें:
?filter[meta_query][key]=_newsml_categories_newsstream&filter[meta_query][key2]=homepage&filter[meta_query][relation]=AND&filter[meta_query][compare]=NOT%20EXISTS&filter[meta_query][compare2]=NOT%20EXISTS
इस उत्तर के आधार पर मेटा क्वेरी अपडेट ।