wordpress建站:如何开发一个WordPress插件

wordpress 插件 允许你对 wordpress 博客进行修改、自定义和加强。不必修改 wordpress 的核心程序,直接用插件的形式增加功能。下面是对 wordpress 插件的基本定义:
wordpress 插件:wordpress 插件是用 php 语言写成的一只或者一组程序。这些程序可以为 wordpress 增加某些原来没有的功能,这样使用者看起来仿佛就是这个博客固有的功能。 插件 api
想为你的博客添加功能吗?那么最简单的方法就是搜搜看有没有现成的插件。如果很不幸——没有,那么这篇文章会指导你自己开发一个。
本文假设你已经熟悉 wordpress 的基本功能,以及 php 编程。
资源
在 插件资源集合 有各种你可能需要的资源,包括外站关于写插件的文章,以及特定主题的文章。学习一个叫 hello dolly 的插件“范本”可以领你入门。如果你的插件已经写完了,并自以为写的不错,查看 插件提交以及推广。
新建一个插件这个部分告诉你怎么把开发插件的理想变为现实。
名称,文件和地方
插件名你得先想一个名字,并且努力让它独一无二。在 plugins 或者其他宝贝地方——google或者百度先验证一下这个名字到底是不是独一无二的。另外你的名字得让别人明白你的插件是干什么的。
插件文件下一步是创建一个php文件。按照原文奇怪的逻辑,你得先想好名字。这个名字还得是从插件名衍生过来的(其实是为你自己辨认的)。举个例子吧,比如说你的插件名字叫 “fabulous functionality”,你的php名字可能是 fabfunc.php。另外不要用汉语拼音(这也是我加的),还要避免重名。人民群众会把你的插件安装到一个你也知道的叫wp-content/plugins/的地方,如果名字冲突岂不要悲剧了。
你也可以选择把插件分割成几个文件。 显而易见一个php文件是必需的,同时还需要图片、css、javascript、语言(当然也可以没有)。如果有很多文件,命名一个php和一个文件夹,例如 fabfunc and fabfunc.php。把你所有插件文件放到文件夹里,然后让你的用户相信只要把你的整个压缩包解压到 wp-content/plugins/就能正常使用你的劳动成果。
在本文的其余部分,“插件的php文件”是指主要插件的php文件,无论是在的wp-content/plugins/或子目录。
readme文件如果你想将你的插件发布到http://wordpress.org/extend/plugins/, 你必须在插件包中建立一个标准格式readme.txt文件. 文件格式参见http://wordpress.org/extend/plugins/about/readme.txt.
主页最好为插件建立一个主页,以介绍插件的功能、安装方法、使用说明、适用的wordpress版本、插件更新信息等。
文件headers现在开始吧,首先让我们从向php主文件中加入一些信息
标准插件信息插件的主文件顶部必须包括一个标准插件信息头。wordpress通过标准信息头识别插件的存在,并把她加入到控制面板的插件管理页面,这样插件才能激活,载入插件,并运行里面的函数;如果没有信息头,插件将无法激活和使用。标准信息插件头的格式为:
1 2 3 4 5 6 7 8 9 10 11 <?php /* plugin name: 插件名 plugin uri: 插件的介绍或更新地址 description: 插件描述 version: 插件版本,例如 1.0 author: 插件作者名称 author uri: 插件作者的链接 license: a slug license name e.g. gpl2 */ ?>
标准信息头至少要包括插件名称,这样wordpress才能识别你的插件。其他信息将显示在控制面板插件管理页面中。标准插件信息对各行顺序没有要求。
这样的升级机制能够正确地读出你的插件版本,建议你选择一个格式的版本号,不同版本之间,并坚持下去。例如,x.x中或x.x.x或xx.xx.xxx
注意:文件必须是 utf-8 格式!
版权信息通常我们还要在标准信息头中加入插件的许可证信息。大多数插件使用gpl或gplcompatiblelicenses许可。如果使用gpl许可,要求插件中包含以下信息:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 <?php /* copyright 年份 作者名 (email : 你的邮箱) ? this program is free software; you can redistribute it and/or modify it under the terms of the gnu general public license as published by the free software foundation; either version 2 of the license, or (at your option) any later version. ? this program is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose. see the gnu general public license for more details. ? you should have received a copy of the gnu general public license along with this program; if not, write to the free software foundation, inc., 51 franklin st, fifth floor, boston, ma 02110-1301 usa */ ?>
开始编写插件现在是时候让你的插件能干些什么了。这部分内容包括插件开发的一般思路,而且介绍了开发插件需要做哪些工作。
wordpress插件钩子许多wordpress插件通过连接一个或多个wordpress插件钩子来完成他们的功能。插件钩子的运行机理是,当wordpress运行到不同阶段,wordpress会检查当前阶段是否注册了插件函数,如果是,那么函数将被执行。通过执行插件函数改变了wordpress的默认功能。
例如,在wordpress将日志标题和post发送到浏览器前,会检查是否有插件函数注册了名为“the_title”的“filter”钩子。如果是,标题文本将会传送到注册函数中,注册函数返回值将会传送到浏览器。所以,如果要在日志标题中加入一些信息,可以通过这种方式实现。
另一个例子是名为“wp_footer”的“action”钩子。在wordpress的html页脚创建之前,会检查是否有插件注册了名为“wp_footer”的“action”钩子,如果是依次执行她们。
在plugin api了解更多如何注册“filter”和“action”类型的钩子函数,及wordpress提供了那些插件钩子。如果你发现wordpress没有提供自己想要的钩子,你可以建议wordpress加入这个钩子,很多建议wordpress都会采纳。具体方法参考reporting bugs。
模版标签另一个通过插件加入新功能的方法是建立自定义的模版标签template tags。如果有人想用你的插件,可以在他们的主题中添加这些标签,边栏,文章内容段,或者任意的只要是适合这插件的地方。例如,一个给文章添加地理位置的插件可能定义了一个模板标签函数geotag_list_states()放在边栏上,这里列表了所有在文章中关联的州的名称,并且还带有插件提供的到这些州的文档页的链接。
定义一个自定义模板标签,仅需要写一个php函数,并且在你插件主页或者插件的主php文件中声明一下。声明函数的时候,为这个函数提供一个示例来明确如果想要应用这个函数需要加主题中加些什么文件是个相当棒的主意。
保存插件数据到数据库大多数wordpress插件需要站点的所有者或者是博客的用户输入信息,然后在对话过程中保存起来,以便过滤器函数(filter)、动作函数(action)或者模板函数(template)使用。这些信息必须保存在wordpress的数据库中,以便下次使用。这里有两种基本的方法用于保存插件的信息到数据库里面。
使用wordpress的”option”机制(稍后会有介绍)。这种方法适合于保存一些相对小数量的静态命名类数据–这类数据通常只需要网站的所有者在首次建立插件的时候输入,以后很少改动。文章属性post meta(a.k.a. custom fields),适用于那些只和个人文章、页面或者附件有关的数据。参看post_meta function
上一个:做网站讨论响应式网站设计中常见的问题
下一个:如何运营海外社交媒体?
淮滨网站建设,淮滨做网站,淮滨网站设计