У меня есть клиент, у которого есть веб-сайт WordPress, и он хочет расширить его, чтобы добавить новые функциональные возможности. Эти функции включены в веб-сайт, который я уже сделал (своего рода поисковая система по базе данных, с некоторыми фильтрами), и который находится в процессе новых улучшений.
Я планирую создать API-интерфейс json для моего веб-сайта (со всеми функциями поиска по моей базе данных) и сделать так, чтобы веб-сайт WordPress использовал этот API-интерфейс, тогда мне нужно будет только создать представления для отображения результатов поиска.
Проблема в том, что я совсем не знаю WordPress (для меня это то, где вы можете добавлять статьи через админ-панель ...), и я не знаю, как мы можем написать собственный код на стороне сервера. Я искал в Google и нашел что-то под названием «плагин», но мне интересно, возможно ли это сделать, и если это самый простой способ сделать, так как мне не нужно, чтобы код использовался какой-либо другой третьей стороной партия. Если есть возможность взломать установку WordPress, чтобы добавить мои PHP-файлы, напишите, что мне нужно (мои взгляды с тем же WordPress CSS), было бы проще, но я не знаю, возможно ли это?
источник
Ответы:
Краткий учебник по разработке 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 мог прочитать его имя и отобразить его в области администрирования, где вы можете включить и отключить его (так что вы можете оставить плагин в каталоге, но временно отключи это).источник
основы
Вы должны обойти основы для плагинов и тем. Вкратце: они являются дополнением к основной функциональности WordPress. Обычно «Плагины» больше о функциональности, а «Темы» больше о «представлении». Возможно, вы также захотите прочитать немного о «API плагинов» .
JSON
Возможно, вы захотите использовать скрипт json2 , встроенный в ядро, для обеспечения «безопасного» API.
Пример JSON
Остальное будет примерно так:
XML Rpc
В Кодексе также есть кое-что о «XML Rpc» .
Http API
Другой возможностью могут быть запросы http . Обязательно прочитайте ссылки внизу ссылки.
Webhooks
Это является дополнительным, поскольку это больше о предоставлении потребляемого API. Объяснение здесь . И есть также плагин под названием HookPress, который сделает эту работу за вас. Несколько слайдов от автора.
источник
Я полагаю, вы знаете PHP? Или это тоже барьер?
По сути, плагины в WordPress - это соглашение о том, как упаковать код PHP, чтобы он распознавался и обрабатывался ядром WordPress. Это формат, а не функциональность.
Что касается реальной функциональности, вы можете в значительной степени запустить произвольный PHP, но рекомендуется использовать API-интерфейсы WP для совместимости и надежности.
Думайте о вашем коде в контексте WP как
include
(что будет технически). Оттуда это сфера ваших потребностей и ресурсов, которые будут определять, сколько из них будет переписано, чтобы быть конкретными для WordPress.источник
Да, это возможно.
большинство плагинов создаются с помощью так называемых хуков:
например:
довольно легко создать себе плагин, когда вы знаете, как работает эта среда, ну ... работает ... Я бы посоветовал ознакомиться с ней, самым обширным местом для знаний (хотя и не самым организованным - как php). нет) это WordPress кодекс .
источник