Я пытаюсь динамически настроить некоторые страницы на сайте WordPress, используя скрипт bash. Я хотел бы, чтобы страницы использовали Elementor, чтобы будущие пользователи могли легко их настраивать.
Я уже понял, что я могу установить шаблон страницы с помощью команды SQL:
INSERT INTO
wp_postmeta
(post_id, meta_key, meta_value)
VALUES
(4, '_wp_page_template', 'elementor_canvas');
Я хочу импортировать (а также вставить) файлы шаблонов json (экспортированные с другой страницы Elementor).
Я посмотрел на https://github.com/elementor/elementor/issues/881 и нашел этот код (из @crazypsycho):
function importTemplate( $filepath ) {
$fileContent = file_get_contents( $filepath );
$fileJson = json_decode( $fileContent, true );
$result = \Elementor\Plugin::instance()->templates_manager->import_template( [
'fileData' => base64_encode( $fileContent ),
'fileName' => 'test.json',
]
);
if ( empty( $result ) || empty( $result[0] ) ) {
return;
}
update_post_meta( $result[0]['template_id'], '_elementor_location', 'myCustomLocation' );
update_post_meta( $result[0]['template_id'], '_elementor_conditions', [ 'include/general' ] );
}
Я не понимаю, куда поместить этот код и как его выполнить, куда поместить файлы моего шаблона json и как отобразить их в сообщении. Интеграция Wp-cli и Elementor в него была не слишком полезна для меня, функция import_library
вызывала ошибки прав доступа.
Я также посмотрел изменения в БД при импорте шаблона и обнаружил, что он добавляет некоторые значения в таблицу wp_postmeta
. Однако, когда я попытался воссоздать его, страница не изменилась вообще.
Я ищу самый простой способ выполнить импорт и вставку файлов шаблонов json Elementor на сайт из кода.
Если кто-то может объяснить, как работает Elementor (в отношении его структуры), почему я не вижу файлов .json в папке сайта (с помощью команды find
) после импорта, или дать мне какие-либо указания о том, где мне искать, это уже будет высоко ценится.
(Google на самом деле не помогает в этой проблеме, так как в основном показывает, как это сделать через графический интерфейс).
Спасибо!