有关创建自定义小部件的最佳实践?

时间:2020-05-12 作者:p01ntbr34k

我正在创建一个主题,我需要为我的侧边栏创建和注册两个自定义小部件。

我需要扩展widget类(针对每个widget)来实现这一点,它会生成大量代码。这似乎真的把我的职能搞糟了。php——尤其是因为我现在有5个以上的自定义小部件。

我想知道,对于如何在主题中最好地包含自定义小部件,是否有推荐的指导原则?我一直在浏览《开发人员手册》,但找不到任何建议,说明在哪里存储小部件类扩展通常是有意义的?

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

实际上,您可以将小部件代码放在主题文件(模板文件除外)的任何位置,并从functions.php 文件

功能。php是WordPress在主题处于活动状态时包含的唯一文件

没有最佳实践,但这并不意味着你应该把事情搞砸。最好将每个小部件代码保存在单独的文件中。

要使事情井然有序,您可以将每个小部件文件放在主题的以下文件夹中:

  • /includes/
  • /widgets/
  • /includes/widgets/

命名小部件文件:

您只能通过扩展WP_Widget 班这表明您需要为每个小部件编写一个类。考虑到这一点,您的小部件文件应该用类前缀命名。例如:class-widget-one.php 以类为前缀的PHP文件表示此文件仅包含一个类。

注册小部件:最好从functions.php. 这样就可以很容易地了解您的主题提供者有多少个自定义小部件,以及它们的位置。

function wpse366458_register_widgets() {
    include( dirname( __FILE__ ) . \'/widgets/class-widget-one.php\' );
    register_widget( \'Theme_Widget_One\' );

    include( dirname( __FILE__ ) . \'/widgets/class-widget-two.php\' );
    register_widget( \'Theme_Widget_Two\' );
}
add_action( \'widgets_init\', \'wpdocs_register_widgets\' );
<在多个小部件上重用代码:现在完全取决于您的需要和品味。你可以-

使用特性类和方法将在当前小部件类中可用。ie:get_page_choices().Prefix_Widget_Helper::get_page_choices()prefix_get_page_choices(), prefix_sanitize_something()

相关推荐

Functions.php上未定义$_GET和&_REQUEST索引

我最近尝试学习为我的自定义主题创建一个主题选项页面,这是按照stackoverflow和其他资源的教程进行的。但脚本显示错误if ($_GET[\'page\'] == basename(__FILE__)) { if (\'save\' == $_REQUEST[\'formaction\']) { foreach ($options as $value) { if( isset( $_REQUEST[ $value[\'id\']