欢迎来到天天文库
浏览记录
ID:52804598
大小:51.00 KB
页数:6页
时间:2020-03-30
《Wordpress插件开发教程-2.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、CoolWP.org撰写此文Suoling.net提供技术支持WordPress插件(WordPressplugin)开发教程(2)WordPress插件(WordPressplugin)开发教程(2),将介绍Wordpress插件开发的一般思路,并介绍开发插件需要做哪些工作.开始编写插件吧是的,终于要正式开始了。本部分将介绍Wordpress插件开发的一般思路,并介绍开发插件需要做哪些工作(除了在第一章里说过的)。WordPress插件Hook(钩子)WordPress插件通过一个或多个WordPress插件Hook来实现它
2、们的功能。插件Hook的运行原理是:当WordPress运行到不同状态,WordPress会检查当前状态是否注册了插件函数,如果有,那么相应的插件函数将被执行。通过执行插件函数改变WordPress的默认功能(默认功能就是一个博客,你懂的)。例如,在WordPress下将日志标题和日志发送到浏览器前,Wordpress会检查是否有插件函数注册了名为“the_title”的“filter”(过滤器)Hook。如果有,标题文本将会传送到注册插件的函数中,注册插件的函数返回值将会被Wordpress传送到浏览器显示给用户。所以,要想
3、在日志标题中加入一些信息,可以通过这种方式实现。另外一个例子:名为“wp_footer”的“action”Hook,会在WordPress前台的HTML页脚创建之前,检查是否有插件注册了名为“wp_footer”的“action”Hook,如果有,会依次执行这些插件。6CoolWP.org撰写此文Suoling.net提供技术支持查看WordPress插件API以了解更多如何注册“filter”和“action”类型的Hook函数、WordPress提供了哪些插件Hook。如果发现WordPress没有提供你想要的Hook,你
4、可以建议WordPress加入这个Hook,很多建议WordPress都会留意并采纳的,因为它是开放的。具体的建议提交方法参考:报告BUG。WordPress插件可用的模版标签另外一个通过插件加入新功能的方法:建立自定义的模版标签(或者称之为短代码)。如果有人想用这个插件的功能,可以在他们的主题中添加这些标签,侧栏、文章内容段,或者任意的地方都可以。例如,一个给文章添加地理位置的插件可能定义一个模板标签函数geotag_list_states() 放在侧栏上,如此等等。定义一个自定义模板标签,仅需要写一个PHP函数,并且在你插
5、件主页或者插件的主PHP文件中声明一下。声明函数的时候,为这个函数提供一个示例来说明如何使用。插件读写数据库数据库大多数WordPress插件需要站点的所有者或者是其它作者输入的信息,然后在对话过程中保存起来,以便过滤器函数(filter)、动作函数(action)或者模板函数(Template)使用。这些信息必须保存在WordPress的数据库中,以便下次使用。这里有两种基本的方法用于保存插件的信息到数据库里面。1.使用WordPress的"option"机制(稍后会有介绍)。这种方法适合于保存一些相对小数量的静态命名类数据
6、--这类数据通常只需要网站的所有者在首次建立插件的时候输入,以后很少改动。6CoolWP.org撰写此文Suoling.net提供技术支持2.文章属性“postmeta”,适用于那些只和个人文章、页面或者附件有关的数据(参看post_metaFunctionExamples, add_post_meta(),以及与文章相关函数属性post.fuctionmeta.)。在数据库中创建一个新的自定义数据表。这种方法适合于与个人文章、页面、附件或者评论相关的数据,这类数据会随着时间越来越多,它们也没有专有名称(参看CreatingT
7、ableswithPlugins来了解更多这类信息处理方法)。WordPressOptions机制参看 CreatingOptionsPages ,以了解如何创建会自动保存你选项数据的页面。WordPress有一个自动更新机制来保存,更新和检索WordPress数据库,名称类数据(即"options"机制)。选项值可以是字符,数组或PHP对象(他们会被"序列化",或在存储前转换为字符,并在被检索时解开序列)。选项名称是字符,并且它们必须是独一无二的,这样就不会与其它的WordPress插件的数据库数据相冲突了。下面是你的插件应
8、用WordPressoption功能的主要函数。1.add_option($name, $value, $deprecated, $autoload); 建立一个新的option;如果这个option已经存在则不做动作.$name必需字符串.要添加的option的名称。$v
此文档下载收益归作者所有