wordpress如何自定义文本小部件名称?

时间:2016-03-16 02:06:54

标签: wordpress

我创建了一个用于添加文本小部件的自定义侧边栏。

function register_child_widgets() {
    register_sidebar(array(
        'name' => 'Social Media (Follow)',
        'id' => 'sidebar-follow',
        'description' => __( 'Widgets in this area will be shown on all posts and pages.', 'theme-slug' ),
        'before_widget' => '',
        'after_widget' => '',
        'before_title' => '',
        'after_title' => '',
    ));
    register_widget( 'Follow_Text_Widget' );
}
add_action( 'widgets_init', 'register_child_widgets' );

class Follow_Text_Widget extends WP_Widget_Text {
    function widget( $args, $instance ) {
        extract($args);
        $title = apply_filters( 'widget_title', empty( $instance['title'] ) ? '' : $instance['title'], $instance, $this->id_base );
        $text = apply_filters( 'widget_text', empty( $instance['text'] ) ? '' : $instance['text'], $instance );
        echo $before_widget;
        if ( !empty( $title ) ) { echo $before_title . $after_title; } ?>
            <?php echo !empty( $instance['filter'] ) ? wpautop( $text ) : $text; ?>
        <?php
        echo $after_widget;
    }
}

当我使用Vantage主题时,我遇到了以下问题:

enter image description here

如何自定义文本小部件的名称,让我们说MyText?有可能吗?

2 个答案:

答案 0 :(得分:1)

您需要在课堂上添加此内容。

  /**
   * Register widget with WordPress.
   */
  function __construct() {
    parent::__construct(
      'mytext', // Base ID
      __( 'MyText', 'text_domain' ), // Name
      array( 'description' => __( 'MyText description', 'text_domain' ), ) // Args
    );
  }

我发现您使用的是WP_Widget_Text,这就是构造函数不起作用的原因。

您必须将构造函数放到扩展WP_Widget

的类中

e.g。

/**
 * Adds MyText widget.
 */
class MyText_Widget extends WP_Widget {

  /**
   * Register widget with WordPress.
   */
  function __construct() {
    parent::__construct(
      'mytext', // Base ID
      __( 'MyText', 'text_domain' ), // Name
      array( 'description' => __( 'MyText description', 'text_domain' ), ) // Args
    );
  }

}  

Source

答案 1 :(得分:1)

尝试只在类中传递构造函数,它应该创建一个命名为“List Related Pages”的小部件

class Follow_Text_Widget extends WP_Widget_Text {
 function __construct() {

    parent::__construct(

        // base ID of the widget
        'tutsplus_list_pages_widget',

        // name of the widget
        __('List Related Pages', 'tutsplus' ),

        // widget options
        array (
            'description' => __( 'Identifies where the current page is in the site structure and displays a list of pages in the same section of the site. Only works on Pages.', 'tutsplus' )
        )

    );

 }
} 

并删除类中的其他函数。因此,您可以检测名称是否已更改,然后问题出在其他函数中