以编程方式触发古登堡保存

时间:2021-09-09 作者:Djave

我有一堆JSON格式的数据,我正试图将其保存到WordPress的新安装中。

我正在使用puppeteer 登录并创建每个页面,以及wp.blocks.createBlock 以编程方式创建块。

// Input the page title

    const headingInput = document.querySelector("#post-title-0");
    headingInput.innerHTML = json.data.heading;

    var changeEvent = new Event("change", {
        bubbles: true,
        cancelable: true,
    });
    headingInput.dispatchEvent(changeEvent);


    /**
     * Next up, create each of the gutenberg blocks
     */
    json.data.blocks.forEach((block) => {
        if (
            block.className == "feature text-feature"
        ) {
            block.content.forEach((element) => {
                if (element.hasOwnProperty("gutenbergBlock")) {
                    var el = wp.element.createElement;
                    insertedBlock = wp.blocks.createBlock(
                        element.gutenbergBlock,
                        element.attributes
                    );
                    wp.data.dispatch("core/editor").insertBlocks(insertedBlock);
                }
            });
        }
    });


 // Attempt to trigger the save:
    document
        .querySelectorAll(".editor-post-publish-button")
        .forEach((button) => {
            console.log("clicking button!");
            var clickEvent = new MouseEvent("click", {
                view: window,
                bubbles: true,
                cancelable: false,
            });
            button.dispatchEvent(clickEvent);
        });
在上面,我尝试单击save按钮来保存帖子,但是这部分不起作用。

是否有方法触发页面内容的保存?类似于:wp.blocks.save()? 我查阅了文件,但找不到如此合适的。

1 个回复