Мне нужно показать популярные и последние сообщения на другом веб-сайте PHP в том же домене.
Пример:
www.example.com
-> основной сайт (php, mysql)www.example.com/blog
-> Блог WordPress
Нужно показывать популярные, последние посты блога на главном сайте.
Обратите внимание, что блог и основной сайт используют две отдельные базы данных.
Для этого я решил использовать плагин WP REST JSON API . Теперь у меня другой вопрос.
Я использую следующий код, чтобы получить популярный пост на прошлой неделе. Что мне действительно нужно, это получить эти же данные через вызов 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 );
Как я могу это сделать?
json
plugin-json-api
popular-posts
web-services
wp-api
Джанит Чинтана
источник
источник
Ответы:
Я дам вам небольшой ответ на ваше обновление, сделав это с помощью WP API . У API есть возможности использовать WP_Query, как и в ядре, но с параметрами get в URL.
URL для извлечения контента из статуса поста будет выглядеть так:
Чтобы получить содержимое с параметрами WP_Query, к которым вы привыкли, вы можете сделать это следующим образом:
Вы можете создать свой собственный запрос со всеми параметрами также в URL. Вы можете увидеть, как метод получения этих данных кажется привычным для использования
WP_Query
в стандартном цикле WordPress. Если вы не укажете параметр,WP_Query
будут использоваться значения по умолчанию .В результате json, который вы можете анализировать и использовать для внешнего сайта.
Смотрите также сайт API для получения дополнительных параметров и документации.
Обновление для
date_query
API не может создать результат для запроса, как
query_date
. Смотрите документацию для всех возможных параметров.Но новая версия выйдет с учетом дней, недель. И посмотрите эту проблему для обсуждения решения для этого запроса даты. Альтернативно используйте пользовательский фильтр через хук, например:
Обновление для
meta_query
API не может также эту функцию WP-Query по умолчанию. Но вы можете использовать ловушку для улучшения API к этому требованию. Также здесь небольшой пример.
Теперь я могу вызвать JSON restful таким образом, чтобы имитировать фильтр сообщений Wp_query уже на сервере:
Обновление мета-запроса на основе этого ответа .
источник
'date_query' => array( array( 'after' => '1 week ago' ) ),
в строку запросаfilter[posts_per_page]=2&filter[order]=ASC
этих двух, не работают, поэтому он всегда дает только последние сообщенияhttp://localhost/wpbeta/plugins/wp-json/posts?filter[posts_per_page]=1&filter[order]=ASC
. Гораздо больше в моём обновлении ниже в ответе.post_per_page
иorder
работает, но как насчетmeta_key
. это работает с этим или мне нужно дополнительная работа для этого?