在WordPress中创建自定义小工具通常涉及以下步骤:
-
定义小工具类:创建一个新的PHP类,该类继承自
WP_Widget
。 -
注册小工具:使用
register_widget()
函数注册你的自定义小工具类。 -
实现小工具的表单:定义一个方法来输出表单,允许用户在小工具管理界面输入选项。
-
实现小工具的输出:定义一个方法来输出小工具在前端页面的内容。
下面是一个简单的示例,展示了如何创建一个简单的自定义小工具:
<?php
// 在主题的 functions.php 文件中添加以下代码
class My_Widget extends WP_Widget {
// 构造函数
function __construct() {
parent::__construct(
'my_widget', // 小工具ID
'我的自定义小工具', // 小工具名称
array( 'description' => '这是一个简单的自定义小工具示例', ) // 小工具描述
);
}
// 输出小工具的表单
public function form( $instance ) {
// 如果之前有设置,则使用旧值,否则使用默认值
$title = ! empty( $instance['title'] ) ? $instance['title'] : esc_html__( '默认标题', 'text_domain' );
?>
<p>
<label for="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>"><?php esc_attr_e( '标题:', 'text_domain' ); ?></label>
<input class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'title' ) ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>">
</p>
<?php
}
// 更新小工具的设置
public function update( $new_instance, $old_instance ) {
$instance = array();
$instance['title'] = ( ! empty( $new_instance['title'] ) ) ? sanitize_text_field( $new_instance['title'] ) : '';
return $instance;
}
// 输出小工具的内容
public function widget( $args, $instance ) {
echo $args['before_widget'];
if ( ! empty( $instance['title'] ) ) {
echo $args['before_title'] . apply_filters( 'widget_title', $instance['title'] ) . $args['after_title'];
}
// 输出小工具的主体内容
echo '<div>' . esc_html__( '这里是自定义小工具的内容。', 'text_domain' ) . '</div>';
echo $args['after_widget'];
}
}
// 注册小工具
function register_my_widget() {
register_widget( 'My_Widget' );
}
add_action( 'widgets_init', 'register_my_widget' );
?>
在这个示例中,我们创建了一个名为My_Widget
的类,它继承自WP_Widget
。我们定义了构造函数来设置小工具的基本信息,定义了form()
方法来输出小工具的表单,定义了update()
方法来处理小工具表单提交的数据,定义了widget()
方法来输出小工具在前端页面的内容。
最后,我们使用register_widget()
函数注册了我们的自定义小工具,并通过add_action()
将其添加到WordPress的widgets_init
动作中。
保存这些代码到你的主题的functions.php
文件中,然后你就可以在WordPress后台的“外观” > “小工具”页面中找到并添加你的自定义小工具了。