问题描述

在外观 – > 窗口小工具菜单中有一个小工具的列表,您可以在侧边栏中进行拖放。

这些自定义小工具的 HTML /PHP 代码在哪里?

我一直在 WordPress 的功能参考,但找不到任何东西。当然,这些小工具必须从 HTML /PHP 模板中拉出来。

我想知道的原因是默认的小工具标题是<h3> 标签,我想将它们更改为<h5> 标签。另外我还需要添加一些<hr /> 等等。

我查看了 theme/includes/widgets.php 文件,但没有发现任何内容。

我正在使用二十一一的副本来修改我的主题。

theme/sidebar.php 中的代码用于 (!dynamic_sidebar()),但是我的侧边栏是动态的,因此这段代码是无用的。

最佳解决方案

WordPress Widgets API 是如何创建各种小工具并注册的侧边栏。

创建新窗口小工具时,可以将变量添加到任何从 register_sidebars 参数获取值的窗口小工具。

args (string/array) (optional)
Builds Sidebar based off of ‘name’ and ‘id’ values. Default: None
name – Sidebar name.
id – Sidebar id.
before_widget – HTML to place before every widget.
after_widget – HTML to place after every widget.
before_title – HTML to place before every title.
after_title – HTML to place after every title.

例:

<?php
    add_action( 'widgets_init', 'prefix_register_sidebars' );
    function prefix_register_sidebars() {
         $args = array(
         'name' => 'My Sidebar',
         'id'   => 'my-sidebar',
         'before_widget' => '<div id="%1$s" class="widget %2$s">',,
         'after_widget'  => '</div><hr />',
         'before_title'  => '<h5 class="widgettitle">',
         'after_title'   => '</h5>'
         );
      register_sidebars( $args );
   }

示例小工具:

class MY_Widget extends WP_Widget {
    function my_widget( $args, $instance ) {
         $widget_ops = array(
         'description' => 'My Widget Description'
         );
        parent::WP_Widget(false, 'My Widget Name', $widget_ops );
    }
    function widget() { // This controls the display of the widget
    $title = 'My Widget Title';

    echo $before_widget;  // Outputs the the 'before_widget' register_sidebars setting
    echo $title;         //Will be wrapped in the 'before_title' and 'after_title' settings
    echo '<p>This is my widget output</p>';
    echo $after_widget;  //Outputs the 'after_widget' settings
    }
}
add_action( 'widgets_init', 'prefix_register_widgets' );
function prefix_register_widgets() {
    register_widget( 'my_widget' );
}

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。