在WP 5.8中自定义小部件标题/标题

时间:2021-08-25 作者:itsneversimple

因此,我已将WP更新为5.8,并且小部件标题不再从我的自定义功能中识别。php

\'name\'          => __( \'Sidebar 1\', \'mytheme\' ),
\'id\'            => \'sidebar-1\',
\'before_widget\' => \'<div id="sidebar">\',
\'before_title\' => \'<h1 class="sidebar-title"><span>\',
\'after_title\' => \'</span></h1>\',
\'after_widget\' => \'</div>\',
我绞尽脑汁,似乎无法解决这个问题,因为这是一个新的变化,似乎没有人问过这个问题。我的小部件想要<h2>Title</h2> 无论我在函数中输入什么。没有我H1班的迹象。加上大量的空格/填充,因为我认为标题(“headers”现在很明显)在我的小部件块之外。如果我恢复到旧的WP版本,它就可以正常工作。我不能使用任何插件。我是否遗漏了一些明显的东西?

1 个回复
最合适的回答,由SO网友:Pierre R 整理而成

你说得对。我以前没注意到!

如果查看代码,您可以看到小部件现在显示在/wp-includes/widgets/class-wp-widget-block.php 它扩展了/wp-includes/class-wp-widget.php

第一个文件是WP 5.8中引入的新文件。在那里,您可以看到小部件现在通过widget_block_content 使用do_blocks() 功能(/wp-includes/blocks.php)

我不知道这是否是一个问题,但您可以使用上面描述的这个新挂钩,如下所示:

function my_widget_block_content($content) {
    $replacements = [
        \'<h2>\' => \'<div class="h1">\',
        \'</h2>\' => \'</div>\',
    ];
    $content = str_replace(array_keys($replacements), $replacements, $content);
    return $content;
}
    
add_filter(\'widget_block_content\', \'my_widget_block_content\');
我希望它会改变,因为str_replace() 函数用于小部件的整个内容,如果您使用的是所见即所得,并且您在其中写入了un标题2,那么它也将被替换:(

相关推荐

Need to edit themes HTML code

我在一家小型网上商店工作,我正在使用Averta福禄考主题。当我遇到他们在购物车里有虫子。cart在手机上不工作,因为我可以使用简单的css和html对其进行一些修复,我可以修复这个bug。但我找不到HTML部分的位置,因为它使用aux设计和elementor插件。也许有人可以建议这个地方如何找到代码的必要部分。这是一个福禄考购物车小部件,它在头文件中创建购物车功能。我的测试地点在这里-SHOP在这种情况下,我很想得到一些建议,因为Avera的支持在三年内忽视了这个问题。谢谢,很抱歉英语不好,这不是我的母