Есть ли способ импортировать файлы шаблонов json и использовать их на странице с Elementor из кода? - PullRequest
0 голосов
/ 08 апреля 2019

Я пытаюсь динамически настроить некоторые страницы на сайте 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 на самом деле не помогает в этой проблеме, так как в основном показывает, как это сделать через графический интерфейс).

Спасибо!

...