停用WordPress插件“Jetpack”,所有oPinterest嵌入变得破碎

zsbz8rwp  于 2023-02-11  发布在  WordPress
关注(0)|答案(1)|浏览(204)

当我停用名为“Jetpack”的WordPress插件时,我所有的数千个Pinterest嵌入都被破坏了。
问题是,Wordress gutenberg 块有一个标准的Pinterest块,但由于我安装了Jetpack这么久,我所有的Pinterest嵌入都是由Jetpack插件处理的。
但我想删除这个插件的网页速度的原因。
但是当我停用插件时,我所有的Pinterest嵌入内容都变成了我网站上的纯URL,这对访问者来说显然是个大问题。
现在,有没有办法大量编辑所有这些Pinterest嵌入,以使用 gutenberg Pinterest块代替?
我希望有办法解决这个问题。我甚至愿意为解决方案付费。

brgchamk

brgchamk1#

不幸的是,没有一种简单的方法可以批量编辑所有Pinterest嵌入内容以使用 gutenberg Pinterest区块。您需要手动浏览包含Pinterest嵌入内容的每篇文章或每个页面,并将其替换为Gutenberg Pinterest区块。
一种选择是使用一个插件,允许你搜索和替换你的WordPress文章和页面中的文本。你可以使用这个插件来搜索Jetpack Pinterest嵌入代码,并将其替换为 gutenberg Pinterest块代码。但是,使用插件时要谨慎,因为如果使用不当,它可能会破坏你的网站。

另一种选择是编写一个自定义脚本来执行此任务。您可以尝试以下代码并查看它是否有效:

<?php

// Get all posts and pages
$posts = get_posts(array(
    'post_type' => array('post', 'page'),
    'posts_per_page' => -1
));

// Loop through all posts and pages
foreach($posts as $post) {
    // Get the content of the post or page
    $content = $post->post_content;
    
    // Check if the Jetpack Pinterest embed code is present in the content
    if(strpos($content, 'data-pin-do="embedPin"') !== false) {
        // Replace the Jetpack Pinterest embed code with the Gutenberg Pinterest block code
        $content = str_replace('data-pin-do="embedPin"', '', $content);
        $content = str_replace('<a data-pin-do="embedPin"', '<!-- wp:pinterest/embed-pin -->', $content);
        $content = str_replace('></a>', '<!-- /wp:pinterest/embed-pin -->', $content);
        
        // Update the post or page with the new content
        wp_update_post(array(
            'ID' => $post->ID,
            'post_content' => $content
        ));
    }
}

?>

请注意,这只是一个基本示例,脚本中可能需要考虑Jetpack Pinterest嵌入代码中的一些变化。在实时网站上运行此脚本之前,在临时环境中彻底测试此脚本也很重要。
一般来说,在进行任何更改之前,特别是涉及代码的更改之前,对网站进行备份总是一个好主意。

相关问题