php - 如何在我的子主题中注册超过 1 个自定义 Elementor 小部件?
问题描述
我最近遵循了这个简单的教程,它允许我在我正在开发的 WordPress 网站上注册和使用我自己的自定义 Elementor 小部件。
https://develowp.com/build-a-custom-elementor-widget/
然而,我想不通的是如何调整这段代码,以便我可以注册多个不同的 elementor 小部件。现在发生的事情是,一旦我尝试注册第二个自定义 Elementor 小部件——第二个小部件完全覆盖了我的第一个小部件(无论是在后台的 Elementor 中,还是在网站的前端。
以下是我尝试在“my-widgets.php”文件中修改的几行代码(我在 functions.php 文件中引用了这些代码,就像在教程中一样):
protected function __construct() {
require_once('rpp_contact_bar.php');
require_once('rpp_newsletter_sign_up_bar.php');
add_action( 'elementor/widgets/widgets_registered', [ $this, 'register_widgets' ] );
}
public function register_widgets() {
\Elementor\Plugin::instance()->widgets_manager->register_widget_type( new \Elementor\My_Widget_1() );
\Elementor\Plugin::instance()->widgets_manager->register_widget_type( new \Elementor\My_Widget_2() );
}
请注意,我的 2 个小部件 PHP 文件(在上面的代码中引用)使用类名“My_Widget_1”和“My_Widget_2”来扩展“Widget_Base”类。
我在这里想念什么?在子主题中注册多个不同的自定义 Elementor 小部件的正确方法是什么?
谢谢,---伊万
解决方案
您的类(My_Widget_1
和My_Widget_2
,在您的示例中)包含一个get_name()
方法,该方法为您的两个小部件返回相同的名称。您应该更改其中一个,以便每个名称都是唯一的。
每个小部件都需要一些基本设置,例如在代码中标识小部件的唯一名称 [...]
– “创建新小部件”,Elementor 开发人员
小部件似乎遵循与 PHP 中的函数名称相同的规则(即以字母或下划线开头,后跟字母、数字或下划线)。不过,我在文档中找不到任何提及的内容。
所以,我认为title-subtitle
由于连字符 ( -
),您的工作不正常。
推荐阅读
- amazon-web-services - 容器应用程序无法从 Web 浏览器连接
- javascript - 为什么 Node.js 中的一些 TCP 套接字比大多数其他套接字需要更多的时间来连接?
- android - WARN 可能未处理的 Promise Rejection (id: 4): BleError- react-native
- json - 如何编码网络调用,以便我只返回不为零或空白的字段
- sql - 如何在 Redshift 上做一个文本掩码
- sql - 如何分组并选择最大日期?
- python - Pandas 查找索引值
- vue.js - 应用程序已安装。再次打开页面时没有显示
- php - HTML 页面链接 N
- c# - .NET Worker 服务 Linux 守护进程单例