【问题标题】:Copying/Cloning Elementor content to a new post programatically so it can be translated以编程方式将 Elementor 内容复制/克隆到新帖子,以便可以翻译
【发布时间】:2021-04-21 06:03:10
【问题描述】:

我正在为 Polylang 开发一个插件,它获取选定帖子的内容并将其保存到可以发送给翻译机构的 XLIFF 文件中。返回翻译后的 XLIFF 后,我创建新的翻译帖子并将它们与 Polylang 函数链接。 Polylang 的工作方式是,每个翻译都是链接到其数据库中的克隆帖子。

经典编辑器、Gutenberg 和任何使用短代码构建 post->post_content 的页面构建器都可以很好地工作。

但是,Elementor 似乎不使用短代码,而是使用它自己的数据库表来保存内容。

我可以从帖子中获取渲染的 Elementor 内容,但这只是 html,虽然我可以将其保存到帖子内容中,但它可以不再使用 Elementor 进行编辑。

我基本上可以尝试使用我获得的 ID 来获取内容 $elementor->documents->get_doc_for_frontend( $post_id )->get_elements_data();,将其保存为 XLIFF 中的可翻译对象,但我还没有弄清楚如何克隆 Elementor 帖子,以便有新的 ID,然后替换其中的内容。或者什么...

是否有人知道克隆 Elementor 页面并替换某些结果页面文本内容的现有实现?

【问题讨论】:

    标签: wordpress localization elementor polylang


    【解决方案1】:

    所有相关数据都存储在wp_postmeta 表中,每个帖子大约有 10 行。

    post_id = '$post_id' AND meta_key = '_elementor_data'meta_value 字段中,您可以找到类似JSON 的内容。要翻译的部分是editor, text, title

    我希望这会有所帮助 - 请让我了解进一步的更新。

    【讨论】:

    • 不幸的是,_elementor_data 元数据的内容包含与$elementor->documents->get_doc_for_frontend( $post_id )->get_elements_data(); 相同的信息,所以它就像:{"id":"8e7b704","elType":"section","settings":[],"elements":[{"id":"3a49657","elType":"column","settings":{"_column_size":100,"_inline_size":null},"elements":[],"isInner":false}],"isInner":false},{"id":"4776a27","elType":"section","settings":[],"elements":[{"id":"a7400f9","elType":"column","settings"... 并且实际内容不存在。我会再深入一点……
    • 啊,好吧,我不知道。所以 Elementor 完全忽略了post_content(我刚刚删除了一个帖子),所有内容都是从_elementor_data 生成的。为了显示,您可以从wp_postmeta exept _elementor_data_elementor_edit_mode 中删除所有相关数据。
    • 您可以显示 Elementor 数据,即使用 jsonformatter.curiousconcept.com - 在此处查找 editor, text, title 这将是要翻译的部分。也许这有帮助:developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/JSON
    猜你喜欢
    • 2019-04-15
    • 1970-01-01
    • 2018-05-19
    • 1970-01-01
    • 2012-03-13
    • 2022-07-02
    • 2015-06-30
    • 2011-09-08
    • 1970-01-01
    相关资源
    最近更新 更多