https://www.jb51.net/article/76810.htm

这篇文章主要介绍了WordPress中使主题支持widget以及添加插件启用函数的方法,使WP可以使用小工具widget与通过register_activation_hook()来添加启用插件的函数,需要的朋友可以参考下

让主题支持小工具
WordPress 的小工具(widget)是一大特色,它让用户自由拖动组合内容,而且任何插件和主题都可以添加一个额外的小工具,增加扩展性。

默认情况下,一个主题并不会支持小工具,需要主题开发者启用小工具功能并把小工具在相应的前台位置调用出来,这样用户才能在后台直接拖动生成侧边栏。

本文就来教你如何激活小工具功能,并且添加一个侧边栏,最后在前台显示出来。

注册侧边栏

默认的,后台外观下是没有 “小工具” 这个菜单按钮的,如果想要让他出现,就至少需要注册一个侧边栏,否则即使显示出来,也没有用。

注册一个侧边栏需要使用 register_sidebar() 函数,用法比较简单,只有一个属性,填上需要的信息就行了。

1.在主题function中添加以下代码

  1. <?php
    /**在function中添加以下代码
    *WordPress添加额外选项字段到常规设置页面
    * http://www.wpdaxue.com/add-field-to-general-settings-page.html
    */
    $new_general_setting = new new_general_setting();
    class new_general_setting {
    function new_general_setting(){
    add_filter('admin_init', array(&$this ,'register_logo'));
    }
    function register_logo(){
    //需要'js/uploader.js组件
    wp_enqueue_script('fli-upload-js', $this->url .'js/uploader.js', array('jquery','media-upload','thickbox'));
    wp_enqueue_style('thickbox');
    wp_enqueue_style('fli-upload-css', $this->url .'css/uploader.css');
    register_setting('general','logo','esc_attr');
    add_settings_field('logo','<label for="logo">'.__('网站Logo').'</label>', array(&$this,'logo_fields_html'),'general');
    }
    function logo_fields_html(){
    $value = get_option('logo','');
    echo '<input type="text" class="regular-text ltr" id="logo" name="logo" maxlength="200" value="'. $value .'" readonly/> <input type="button" id="general_logo" class="button insert-media add_media" value="上传">';
    }
    }
    //自定义后台Css和Js
    add_action('admin_enqueue_scripts','myAdminScripts');
    function myAdminScripts(){
    //主题下加载admin.js
    wp_register_script('default', get_template_directory_uri().'/admin.js', array(),'','all');
    wp_enqueue_script('default');
    wp_register_style('default', get_template_directory_uri().'/admin.css', array(),'','all');
    wp_enqueue_style('default');
    }
    ?>
    

2.在主题admin.js中添加代码

options_general();
//在常规选项页面添加自定义信息
function options_general (){
if(!Islocatl_pathname('options-general.php'))return;
//点击上传按钮或input元素时打开上传窗口
jQuery('#general_logo,#logo').click(function(){
//打开上传窗口需要js/uploader.js组件
tb_show('','media-upload.php?type=image&TB_iframe=true');
returnfalse;
});
//图片上传页面回传
//html:为选择的图片元素
window.send_to_editor =function(html){
imgurl = jQuery(html).attr('src');
// 保存值并写入optuions表
jQuery('#logo').val(imgurl);
//删除图片上传窗口
tb_remove();
returnfalse;
}//end send_to_editor
}
//当前页面是否是指定的页面
functionIslocatl_pathname(pathname){
return location.pathname.indexOf(pathname)>=0;
}//end 当前页面是否是指定的页面

效果图:

参考:

进阶教程(三十四):调用新版的媒体中心上传图片

定制和使用WordPress图片上传功能

WordPress 添加额外选项字段到常规设置页面

来自为知笔记(Wiz)

WordPress中使主题支持小工具以及添加插件启用函数相关推荐

  1. c语言中延时时间计算,能精确计算C语言延时程序中延时时间的小工具(转)

    能精确计算C语言延时程序中延时时间的小工具 Emu51Form是一个软仿真计时器 具体使用方法为: 1.打开 keil\tools,ini 文件,在它的c51栏中加入 AGSI9=Emu51Form. ...

  2. 如何在计算机桌面上添加小工具,怎么在电脑的桌面小工具里添加便签

    原标题:怎么在电脑的桌面小工具里添加便签 用便签小工具记事,是很多用电脑用户的常规操作.有的人找不到电脑便签,打开电脑开始菜单栏一看,记事工具居然只有记事本. 用记事本很多人不愿意,毕竟记事本比较适合 ...

  3. WordPress 开发带缩略图随机文章小工具

    以前曾经分享了一篇 给WordPress后台小工具增加一个随机文章,但没有附加缩略图的功能,为了让你的随机文章看起来更吸睛,这里加上特色图像的缩略图,效果如本站左边栏的随机文章,步骤和代码如下: 后台 ...

  4. Wordpress不同页面显示不同小工具

    问题 想做一个在右侧显示的文章目录, 使用文章目录的插件 Easy Table of Contents, 将其添加到右侧的侧边栏中, 很轻松做到了这点. 但是, 一个新的问题出现了. 这个目录的工具, ...

  5. ubuntu桌面便签_在Deepin 20、Ubuntu 20.04中安装便签小工具Stickynotes

    如果你要在Deepin 20.Ubuntu 20.04系统中找类似于Windows系统下的桌面便签小工具,那Indicator Stickynotes非常适合你,而且安装非常的简单,至少有两种安装St ...

  6. Apache中的一个测试小工具

    一个不错的 目录中的 ab.exe ,相当简单容易的一个测试小工具. ab -n 1000 -c 50 http://www.xxx.com/(要测试的网站目录)相当的简单容易.让你初步对服务器的性能 ...

  7. 串口通信中一些常用的小工具

    文章目录 1.逻辑分析仪下的串口数据 2.数字转字符串函数 3.字符串转整数 4.字符串转浮点数 5.测试转换方法 6.空闲中断DMA接收不定长数据 7.高频数据收发测试 本文总结下串口通信的一些小技 ...

  8. 计算机类学术论文写作中提高效率的小工具

    作为一个学术论文写作新手,分享在论文写作过程中发现的提高效率的小工具. 1. 在线写作工具--Overleaf 在线latex写作,自动保存.在写的过程中可以随时编译,并且下载为pdf格式. 网址:h ...

  9. HashTab-查看哈希值小工具,一键插件文件md5值

    平时下载文件,下载页面会有一个哈希值,用于校验文件是否正确,比如我们平时用磁链下载文件的时候经常看见MD5,那么哈希值是什么? 哈希值是将数据经过计算,生成一串由随机字母或数字组成的字符串,不同的哈希 ...

最新文章

  1. SAP医药医疗行业解决方案
  2. netty源码分析服务器启动 NioEventLoop创建
  3. 大脚导入配置选择哪个文件_「科普向」为何我用大脚时,单体插件会安装失败?...
  4. JavaScript之各种继承方式和优缺点
  5. 【SSM框架系列】Spring - JdbcTemplate声明式事务
  6. 网页设计必备工具 firefox Web Developer插件 CSS工具组教程
  7. 小程序 获取用户信息 openid 等
  8. [原创]K8 cping 3.0大型内网渗透扫描工具
  9. python3 format函数_【Python3 第三日】%和format格式化输出 函数
  10. leetcode 19
  11. mysql 分库备份
  12. Radis还年轻,代替MySQL还言之过早
  13. 计算机win是什么键,win键是哪个键,电脑win键在哪
  14. php 母版 登陆,幻灯片母版的作用有哪些
  15. 微软面试案例分析,绝!
  16. 靓号,java正则表达式的实现
  17. AG9311功能应用和结构设计框图参考
  18. vue移动端下拉刷新、上拉加载
  19. windowns11系统下安装Proteus_8.7教程
  20. 离散数学10:平面图与对偶图

热门文章

  1. 《Node应用程序构建——使用MongoDB和Backbone》一第 1 章 介绍与总览1.1 打造一个社交网络...
  2. MyBatis注解模式批量insert方法
  3. DBA_Oracle Table Partition表分区概念汇总(概念)
  4. Github Page创建个人主页以及绑定域名
  5. 草稿--Windows消息机制
  6. 咨询的真相8:咨询业的“前世今生”
  7. 劳心者、劳力者或CEO、CTO各得其所,足矣
  8. 400. 第 N 位数字
  9. leetcode 1707. 与数组中元素的最大异或值
  10. leetcode1094. 拼车