首页 > 其他分享 >Wordpress自定义小工具(Widget)简单案例

Wordpress自定义小工具(Widget)简单案例

时间:2023-05-21 14:22:07浏览次数:41  
标签:Widget 自定义 title get widget instance Wordpress 工具

  • 在主题对应目录创建文件如widgets.php
<?php

// 继承了 WP_Widget 这个类来创建新的小工具(Widget): 可在后台外观 - 小工具中添加此自定义小工具到页面具体位置
class my_widget extends WP_Widget {

    public function __construct()
	{
		// $widget_ops 可以给小工具进行描述等等。
		$widget_ops = array(
            'description' => '这是Widget的描述'
        );
		// $control_ops 可以对小工具进行简单的样式定义等等
		$control_ops = array('width' => 200, 'height' => 500);
		// $name 这个小工具的名称
		parent::__construct('my_widget', '一个简单的Widget', $widget_ops, $control_ops);
	}

	// 输出显示在页面上
	function widget($args, $instance) {
        // $instance 为当前小工具实例
		extract( $args );
		$title = apply_filters('widget_title', empty($instance['title']) ? __('如果title字段没有输入值,则这是默认的显示值') : $instance['title']);

		echo $before_widget;
		echo $before_title . $title . $after_title;
		echo $after_widget;
	}

	// 给小工具添加表单内容,用于在后台设置时进行内容输入
	function form($instance) {
        // 对输入值进行HTML转义,防止输入HTML格式内容
		$title = esc_attr($instance['title']);
        // 后面可直接写HTML代码,因此此处需要先结束PHP代码,之后再通过`<?php`重新开启PHP代码输出
		?>
		<p>
            <!-- esc_attr_e: 对值进行多语言翻译后再转义(wp内置了对`Title:`的翻译,即`标题:`,如果未找到翻译值则显示原始值) -->
            <label for="<?php echo $this->get_field_id('title'); ?>"><?php esc_attr_e('Title:'); ?>
                <!-- id: widget-my_widget-1-title, name: widget-my_widget[1][title] -->
                <input id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo $title; ?>" />
            </label>
        </p>
		<?php
	}

	// 更新保存
	function update($new_instance, $old_instance) {
		return $new_instance;
	}
}
register_widget('my_widget');
?>
  • functions.php中引入上述文件,如在末尾加上require_once get_template_directory() . '/widgets.php';
  • 使用:在后台外观 - 小工具中添加此自定义小工具到页面具体位置即可

标签:Widget,自定义,title,get,widget,instance,Wordpress,工具
From: https://www.cnblogs.com/oldinaction/p/17418555.html

相关文章

  • ExtJS 4中自定义Grid列标题的对齐方式
           从ExtJS2.0到目前的4.0,Grid的列标题对齐方式都是和数据的对齐方式一致的,这不太符合中国人的习惯。解决办法是,自己重写一下Ext.grid.column.Column对象中渲染列标题的对齐方式的代码。代码只有一句,在afterRender方法中,因而重写afterRender方法就行了,具体做法如下。......
  • Django后台 + Wordpress主题,只要自己看上的主题都可以让它变成自己的
    既然学习了PythonWeb怎么能没有自己的一个小站呢?没有自己精心打造的一个小站怎么敢说自己学习过PythonWeb呢?说的再多不如直接干,我的个人网站也已经部署上线。Django后台+Wordpress主题,只要自己看上的主题都可以让它变成自己的为什么要选择Wordpress主题呢?自己在刚开始学习P......
  • 配置wordpress:自定义简码(wordpress 6.2)
    一,添加php代码的例子:1,代码://说明:得到当前时间functionlhdGetNowTime(){ $now=date("Y-m-dH:i:s");return$now;}//注册成简码,名字myNowadd_shortcode('myNow','lhdGetNowTime');//说明:获取完整URLfunctioncurPageURL(){ $pageURL='h......
  • 数据列表管理-底部的自定义代码参考
    <!--做数据的流转状态操作001--><divclass="div_bottom_control_location_area"id="div_rejected_or_approved"><buttononclick="submit_or_reject_for_review(0)"type="button"class="am-btnam-btn-dangerbtn_......
  • 数据列表管理-顶部查询条件的自定义代码参考
     银行:<selectid="sl_bank"class="fsbpmserachcontrolsearch_select"myts="sl"></select>状态:<selectid="sl_status_filter"class="fsbpmserachcontrolsearch_select"myts="sl"><......
  • 配置wordpress:在footer/页脚添加icp备案许可证号(wordpress 6.2)
    一,添加icp许可证号外观->主题文件编辑器->主题页脚:在class名为site-info的div中添加如下html代码:<div style="text-align:center"> <ahref="http://beian.miit.gov.cn/"class="imprint"rel="externalnofollow"target="_blank"......
  • el-table自定义表头
    实现效果<!--*@Descripttion:el-table自定义表头*@version:*@Author:zhangfan*@email:[email protected]*@Date:2020-05-1409:08:01*@LastEditors:zhangfan*@LastEditTime:2020-06-2918:53:17--><template><divclass="topCon......
  • el-tree实现自定义节点内容
    <!--*@Descripttion:el-tree实现自定义节点内容*@version:*@Author:zhangfan*@email:[email protected]*@Date:2020-07-0309:10:28*@LastEditors:zhangfan*@LastEditTime:2020-07-1611:21:20--><template><divclass="treeBo......
  • ExtJs GridPanel 自定义汇总
    {text:'订单金额',dataIndex:'amount',renderer:function(value){returnExt.util.Format.number(value,'0.00');},summaryType:function(records){varamount=0;varlength=records.length;for(var......
  • Vue 自定义指令实践
    Vue自定义指令一个自定义指令由一个包含类似组件生命周期钩子的对象来定义。钩子函数会接收到指令所绑定元素作为其参数。在 <scriptsetup> 中,任何以 v 开头的驼峰式命名的变量都可以被用作一个自定义指令。eg: 在上面的例子中,vFocus 即可以在模板中以 v-focus 的形......