Intereting Posts
Преимущества для размещения сценариев / таблиц стилей сайта? Обновление до SSL-перерывов Панель управления администратора как указать каталог для файла при его загрузке Файлы cookie для проверки подлинности WordPress и ajax calls Публикация только URL-адреса Facebook без полного фрагмента кода Отправка json в wordpress api Нет «Домашняя страница» на вкладке «Чтение» Проблема детской темы Как переопределить функцию в functions.php родительской темы? Как медиабиблиотека определяет, есть ли в файле PDF изображения предварительного просмотра? Тема останавливает загрузчик мультимедиа от работы Divi Theme HTML-код отличается на странице «Просмотр страницы», чем в Firefox Inspector Как я могу изменить пользовательский тип сообщения и шаблон пользовательской страницы для дочерней темы, если все штыри контента обрабатываются «родным» плагином темы? Показать количество сообщений от зарегистрированных пользователей WP_Query возвращает posts_per_page + 1 каждый раз

Как создать API JSON на основе REST (как изменить код ниже)?

if(isset($_GET['api']) ) { if ($_GET['api'] == 'json'){ $args = array( 'post_type' => 'post' ); $query = new WP_Query( $args ); // $query is the WP_Query Object $posts = $query->get_posts(); // $posts contains the post objects foreach( $posts as $post ) { // Pluck the id and title attributes $output[] = array( 'id' => $post->ID, 'title' => $post->post_title, 'content' => $post ->post_content, 'imageurl' => wp_get_attachment_url( get_post_thumbnail_id($post->ID) ) ); } header("content-type: application/json"); echo json_encode( $output ); } exit(); } } 

Вот что я получаю в результате:

 [ { "id": 95, "title": "See you next year!", "content": "Lorem ipsum", "imageurl": "http://localhost/....(random url)dsad.jpg" }, { "id": 19, "title": "Early bird tickets", "content": "that is good", "imageurl": http://localhost/....(random url)dsada.jpg" } ] 

Как я могу изменить его, чтобы я мог получить доступ только к ID или Title, но не ко всем?

попробуй это:

 if (isset($_GET['api'])) { if ($_GET['api'] == 'json' && isset($_GET['id'])) { $args = array( 'p' => $_GET['id'], 'post_type' => 'any'// ID of a page, post, or custom type ); $query = new WP_Query($args); // $query is the WP_Query Object $post = $query->post; // $post contains the post object header("content-type: application/json"); echo json_encode($post); } exit(); } 

get post будет получать одно сообщение, он возвращает массив, чтобы он мог перейти непосредственно в json_encode, вам нужно будет добавить URL-адрес «id = XX», где X – число.

Если у вас есть последняя версия wordpress, я рекомендую вам использовать встроенный api WP REST Api