Preciso mostrar postagens populares e recentes em outro site PHP sob o mesmo domínio.
Exemplo:
www.example.com
-> site principal (php, mysql)www.example.com/blog
-> Blog do WordPress
Precisa mostrar posts populares e recentes do blog no site principal.
Observe que o blog e o site principal usam dois bancos de dados separados.
Decidi usar o plugin WP REST JSON API para isso. Agora eu tenho uma pergunta diferente.
Eu uso o seguinte código para recuperar a postagem popular da semana passada. O que eu realmente preciso é obter esses mesmos dados via chamada de API.
$args = array(
'date_query' => array( array( 'after' => '1 week ago' ) ),
'posts_per_page' => $recent_posts_count,
'ignore_sticky_posts' => 1,
'meta_key' => 'post_views_count',
'orderby' => 'meta_value_num',
'order' => 'DESC'
);
$popularposts = new WP_Query( $args );
Como eu posso fazer isso?
json
plugin-json-api
popular-posts
web-services
wp-api
Janith Chinthana
fonte
fonte
Respostas:
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:
Para obter conteúdo com os parâmetros WP_Query aos quais você está acostumado, você pode fazer o seguinte:
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õesWP_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:
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.
Agora, eu posso chamar o JSON repousante assim para imitar o filtro de postagens Wp_query já no servidor:
A atualização da meta consulta com base nesta resposta .
fonte
'date_query' => array( array( 'after' => '1 week ago' ) ),
como uma string de consultafilter[posts_per_page]=2&filter[order]=ASC
deste dois não está funcionando, por isso está sempre dando posts recentes únicahttp://localhost/wpbeta/plugins/wp-json/posts?filter[posts_per_page]=1&filter[order]=ASC
. Muito mais na minha atualização abaixo na resposta.post_per_page
eorder
está funcionando, mas e quantometa_key
? funciona com isso ou preciso trabalhar extra para isso?