Darei uma pequena resposta à sua atualização, fazendo isso com a API do WP . A API tem a possibilidade de usar o WP_Query como também no núcleo, mas sobre os parâmetros get no URL.
Um URL para extrair conteúdo do Status da postagem ficaria assim:
http://example.com/wp-json/posts
Para obter conteúdo com os parâmetros WP_Query aos quais você está acostumado, você pode fazer o seguinte:
http://example.com/wp-json/posts?filter[posts_per_page]=2&filter[order]=ASC
Você pode criar sua consulta personalizada com todos os parâmetros também no URL. Você pode ver como o método de captura desses dados parece familiar para o uso WP_Query
em um loop padrão do WordPress. Se você não especificar um parâmetro, os padrões WP_Query
serão usados.
O resultado é json, que você pode analisar e usar para seu site externo.
Consulte também o site da API para obter mais parâmetros e documentação.
Atualização para date_query
A API não pode criar um resultado para uma consulta como query_date
. Consulte a documentação para todos os parâmetros possíveis.
Mas a nova versão será lançada em exibição dias, semanas. E consulte este problema para discussão sobre uma solução para esta consulta de data. Alternativamente, use um filtro personalizado via gancho, como:
// 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" ) ) )
);
} );
Atualização para meta_query
A API também não pode esse recurso da WP-Query padrão. Mas você pode usar um gancho para aprimorar a API para esse requisito. Também aqui um pequeno exemplo.
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;
}
Agora, eu posso chamar o JSON repousante assim para imitar o filtro de postagens Wp_query já no servidor:
?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
A atualização da meta consulta com base nesta resposta .