Использование внешнего API в WordPress?

9

У меня есть клиент, у которого есть веб-сайт WordPress, и он хочет расширить его, чтобы добавить новые функциональные возможности. Эти функции включены в веб-сайт, который я уже сделал (своего рода поисковая система по базе данных, с некоторыми фильтрами), и который находится в процессе новых улучшений.

Я планирую создать API-интерфейс json для моего веб-сайта (со всеми функциями поиска по моей базе данных) и сделать так, чтобы веб-сайт WordPress использовал этот API-интерфейс, тогда мне нужно будет только создать представления для отображения результатов поиска.

Проблема в том, что я совсем не знаю WordPress (для меня это то, где вы можете добавлять статьи через админ-панель ...), и я не знаю, как мы можем написать собственный код на стороне сервера. Я искал в Google и нашел что-то под названием «плагин», но мне интересно, возможно ли это сделать, и если это самый простой способ сделать, так как мне не нужно, чтобы код использовался какой-либо другой третьей стороной партия. Если есть возможность взломать установку WordPress, чтобы добавить мои PHP-файлы, напишите, что мне нужно (мои взгляды с тем же WordPress CSS), было бы проще, но я не знаю, возможно ли это?

Тахир
источник
Что именно вы пытаетесь сделать, прочитать json-ленту в WordPress, вставить данные в базу данных, опубликовать через XML-RPC, попытаться быть более понятным.
Вик
читать JSON Feed. Например, сайт WordPress должен содержать форму поиска, при отправке он будет выполнять вызов get для API, API будет возвращать объекты в формате json, и я должен вывести эти результаты на страницу сайта
WordPress
1
@tahir Я пытаюсь сделать то же самое. Не могли бы вы рассказать о том, как вы достигли своей цели?
SAHM

Ответы:

9

Краткий учебник по разработке WordPress, который может помочь или может сбить вас с толку:

Главное иметь в виду: это всего лишь PHP. А также: не редактируйте основные файлы WordPress, потому что у вас будут проблемы при обновлении до более новой версии позже. Единственный код, который вы должны редактировать, это код плагинов и тем.

Если вам нужно только что-то добавить на существующую страницу, это может помочь просто отредактировать нужный файл темы. Однако, если вам нужно сделать что-то более сложное (и добавление дополнительного «представления», например, по определенному URL-адресу, более продвинуто в WordPress), вам нужно добавить код в место, которое будет загружено ранее в процессе загрузки WordPress. ,

Причиной этого является то, что WordPress всегда делает для вас пост-запрос на основе URL. Если вы перейдете к нему /category/banana/, он запросит сообщения категории bananaи загрузит правильный файл шаблона, где вам нужно только зациклить и отобразить их. Однако, если вы зайдете на сайт /custom-view/, WordPress, вероятно, не найдет ни одного поста и загрузит шаблон 404, что не даст вам простого способа восстановления!

Некоторые люди решают эту проблему, создавая «заглушки»: они создают страницу в WordPress, где контент не важен, только шаблон: там они делают то, что хотят. Это хакерство, но это работает. Чистым способом было бы определить дополнительные правила перезаписи , которые позволят WordPress знать, что /custom-view/это действительный URL, но что-то еще должно произойти.

Если вы хотите сделать это, вам нужно подключиться к основной системе WordPress. Важной частью здесь является подключение , а не изменение . WordPress имеет действия и фильтры . Действие - это просто объявление ( «Эй, мы сейчас пишем <head>тег. Вы тоже хотите что-нибудь добавить?» ). Фильтр позволяет изменять переменную ( «Это заголовок сообщения. Если вы хотите изменить его, верните новое значение» ). Конечно, хитрость теперь состоит в том, чтобы знать, какие действия и фильтры вы должны использовать. Это зависит от того, как вы выберете (заглушки или новые правила переписывания), поэтому я не буду вдаваться в подробности.

Вы определяете действия и фильтры, которые хотите использовать, в файле плагина или в файле functions.php вашей темы. Они отличаются тем, что загружаются во время загрузки WordPress, то есть перед выполнением основного запроса и так далее. Файл плагина - это просто файл PHP, помещенный в wp-content/plugins/каталог со специальным заголовком, чтобы WordPress мог прочитать его имя и отобразить его в области администрирования, где вы можете включить и отключить его (так что вы можете оставить плагин в каталоге, но временно отключи это).

Ян Фабри
источник
2

основы

Вы должны обойти основы для плагинов и тем. Вкратце: они являются дополнением к основной функциональности WordPress. Обычно «Плагины» больше о функциональности, а «Темы» больше о «представлении». Возможно, вы также захотите прочитать немного о «API плагинов» .

JSON

Возможно, вы захотите использовать скрипт json2 , встроенный в ядро, для обеспечения «безопасного» API.

Пример JSON

Остальное будет примерно так:

$response = json_encode( array( 
     'data' => $your_output 
) );
header( "Content-Type: application/json" );
echo $response;

XML Rpc

В Кодексе также есть кое-что о «XML Rpc» .

Http API

Другой возможностью могут быть запросы http . Обязательно прочитайте ссылки внизу ссылки.


Webhooks

Это является дополнительным, поскольку это больше о предоставлении потребляемого API. Объяснение здесь . И есть также плагин под названием HookPress, который сделает эту работу за вас. Несколько слайдов от автора.

кайзер
источник
1

Я полагаю, вы знаете PHP? Или это тоже барьер?

По сути, плагины в WordPress - это соглашение о том, как упаковать код PHP, чтобы он распознавался и обрабатывался ядром WordPress. Это формат, а не функциональность.

Что касается реальной функциональности, вы можете в значительной степени запустить произвольный PHP, но рекомендуется использовать API-интерфейсы WP для совместимости и надежности.

Думайте о вашем коде в контексте WP как include(что будет технически). Оттуда это сфера ваших потребностей и ресурсов, которые будут определять, сколько из них будет переписано, чтобы быть конкретными для WordPress.

Rarst
источник
0

Да, это возможно.

большинство плагинов создаются с помощью так называемых хуков:

например:

add_action("hook", "function")

довольно легко создать себе плагин, когда вы знаете, как работает эта среда, ну ... работает ... Я бы посоветовал ознакомиться с ней, самым обширным местом для знаний (хотя и не самым организованным - как php). нет) это WordPress кодекс .

Итай Саги
источник