我创建了一个用于添加文本小部件的自定义侧边栏。
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主题时,我遇到了以下问题:
如何自定义文本小部件的名称,让我们说MyText?有可能吗?
答案 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
);
}
}
答案 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' )
)
);
}
}
并删除类中的其他函数。因此,您可以检测名称是否已更改,然后问题出在其他函数中