使用 Elementor 导入 WordPress 页面时出现“致命错误:未捕获的类型错误”

问题描述 投票:0回答:1

我正在开发自定义 WordPress 主题,并在使用 Elementor 导入页面时遇到问题。我使用的是 Elementor 的免费版本,并且我已使用以下代码成功导出了页面:

$pages = get_posts( array('post_type' => 'page', 'numberposts' => -1) );
$exported_data['pages'] = array();
foreach ($pages as $page) {
    $page_data = array(
        'ID' => $page->ID,
        'post_title' => $page->post_title,
        'post_content' => $page->post_content,
        'meta' => get_post_meta($page->ID),
        'is_elementor' => (get_post_meta($page->ID, '_elementor_edit_mode', true) === 'builder'),
        '_elementor_data' => get_post_meta($page->ID, '_elementor_data', true)
    );
    $exported_data['pages'][] = $page_data;
}

但是,当我尝试使用以下代码导入页面时:

$exported_pages = $imported_data['pages'];
$page_id_mapping = array();
if (isset($exported_pages)) {
    foreach ($exported_pages as $page_data) {
        // ...
        // Code to create the page and set metadata
        // ...
        // Using Elementor
        if ($page_data['is_elementor']) {
            $elementor_data = array();
            if (isset($page_data['_elementor_data'])) {

                        $decoded_data = json_decode($page_data['_elementor_data'], true);
                        $elementor_data = $decoded_data[0];
            }
            update_post_meta($page_id, '_elementor_data', $elementor_data);
            update_post_meta($page_id, '_elementor_edit_mode', 'builder');
        }
    }
}

我收到错误“致命错误:未捕获类型错误:Elementor\Core\Page_Assets\Loader::enable_assets():参数 #1 ($assets_data) 必须是数组类型”。此错误似乎是由 Elementor 中的enable_assets() 调用引起的。

我已经验证 _elementor_data 的值是有效的 JSON,并且我已经正确解码了关联数组。我不确定是什么原因导致此错误或如何解决它。

_elementor_data decode:
    array (size=5)
      'id' => string 'd9e7f92' (length=7)
      'elType' => string 'section' (length=7)
      'settings' => 
        array (size=10)
          'layout' => string 'full_width' (length=10)
          'height' => string 'full' (length=4)
          'content_position' => string 'middle' (length=6)
          'overflow' => string 'hidden' (length=6)
          'background_background' => string 'classic' (length=7)
          'background_image' => 
            array (size=5)
              ...
          'background_position' => string 'center center' (length=13)
          'background_repeat' => string 'no-repeat' (length=9)
          'background_size' => string 'cover' (length=5)
          'css_classes' => string 'hero' (length=4)
      'elements' => 
        array (size=1)
          0 => 
            array (size=5)
              ...
      'isInner' => boolean false

有人在使用 Elementor 导入 WordPress 页面时遇到过类似的问题吗?在自定义主题中正确处理 Elementor 数据的导入可能有哪些可能的解决方案或替代方案?

提前感谢您的帮助!

php wordpress import importerror elementor
1个回答
0
投票

我也面临同样的问题,请问您找到解决办法了吗?

© www.soinside.com 2019 - 2024. All rights reserved.