Могут ли расширенные пользовательские поля быть встроены в пользовательскую тему WordPress, то есть поля могут быть определены сразу же, когда пользователь устанавливает тему? - PullRequest
0 голосов
/ 21 мая 2019

Скажем, я создаю несколько настраиваемых полей, которые можно редактировать с помощью редактора главной страницы.

Я сохраняю эти изменения и хочу, чтобы пользователи моей темы могли видеть все настраиваемые поля, которые я сделал как как только тема установлена ​​

Таким образом, я могу создать тему с предопределенными настраиваемыми полями по всему сайту, чтобы пользователи, установившие тему, могли сразу же редактировать настраиваемые поля.

В противном случае вся работа, выполняемая с помощью расширенных настраиваемых полей, является довольно бессмысленной, поскольку при упаковке темы пользователь не будет иметь доступа к базе данных, в которой хранятся файлы.Я надеюсь, что то, что я спрашиваю, имеет смысл!

РЕДАКТИРОВАТЬ: Если это вообще невозможно, я бы принял это как ответ.Если это невозможно, мне нужно будет экспортировать, а затем импортировать базу данных для созданных пользовательских полей, которые будут отображаться на компьютере клиента после правильной установки темы?

1 Ответ

3 голосов
/ 21 мая 2019

Совершенно разумный вопрос, и кое-что, о чем ACF подумал, и создал руководство для . Это руководство состоит из двух частей, которые я кратко изложу ниже:

  • Фактический плагин ACF должен быть включен в вашу тему, что вы можете сделать одним из следующих способов:
    • Объединение фактического PHP-кода ACF с вашей темой (фактические файлы плагинов)
    • Или предоставьте ссылку на страницу плагина ACF и предложите пользователям установить плагин как часть вашей темы readme.
  • Включая определенные пользовательские поля, которые идут с вашей темой - это то, о чем ваш вопрос в основном задается. Опять же, несколько разных способов сделать это:
    • В качестве новой функции ACF вы можете зарегистрировать настраиваемые поля в своей теме, используя файлы JSON вместо сохранения конфигурации в базе данных SQL. Это то, что я лично использую, поскольку безумно легко настроить (просто создайте папку acf-json в корне вашей темы) и позволяет вам использовать контроль версий (например, GIT) для отслеживания пользовательских настроек. изменения поля.
    • Если вы предпочитаете старый способ, вы можете зарегистрировать свои настраиваемые поля в файле functions.php вашей темы.

Некоторую дополнительную информацию, которую я могу предоставить:

Как насчет хранения значений ACF, а не конфигурации?

Существует только одна «база данных» для данной установки Wordpress, и способ, которым ACF хранит значения, введенные пользователями для настраиваемых полей с данным сообщением, находится в таблице «wp_postmeta», связывая значение с идентификатором сообщения, метка поля (изменяемая) и идентификатор поля (постоянный).

Это на самом деле выгодно для вас, как для разработчика темы, потому что это означает, что если пользователь делает что-то вроде установки вашей темы, вводит кучу значений настраиваемых полей, случайно удаляет вашу тему или переключается на другую, а затем хочет чтобы включить его, данные не будут потеряны.

Обеспечение установки ACF с вашей темой

Если вы решите не связывать источник ACF с вашей темой, а вместо этого предложите пользователям вручную установить плагин через каталог плагинов, вы можете установить некоторые проверки в своей теме, чтобы убедиться, что они это делают. Вы можете использовать что-то вроде if(!function_exists('the_field')){ /* Block use of your theme until installed */ } в некоторых стратегических местах в коде вашей темы, чтобы проверить, установлен ли ACF, а если нет, обработать это соответствующим образом и предложить администратору установить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...