wordpress插件开发接口(如何进行wordpress的二次开发)

:暂无数据 2026-10-03 16:50:21 :0

wordpress插件开发接口(如何进行wordpress的二次开发)

各位老铁们好,相信很多人对wordpress插件开发接口都不是特别的了解,因此呢,今天就来为大家分享下关于wordpress插件开发接口以及如何进行wordpress的二次开发的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

本文目录

如何进行wordpress的二次开发

WWordPress的二次开发分为两个主要方面:主题开发和插件开发。
1.主题开发首先,了解WordPress主题结构很重要。WordPress主题由一套PHP文件、CSS文件和图像文件组成。你可以通过这些文件来自定义主题,使其适合你需要的风格和功能推荐使用wordPress官方提供的主题开发文档作为参考,其中包括了详细的步票和代码示例。
2.插件开发:插件是一系列的功能代码,用于向WordPress添加新功能或改进现有功能。在开发插件之前,你需要先确定你想要添加的功能以及实现方式推荐使用WordPress官方提供的插件开发文档作为参考,其中包括了详细的步票和代码示例司时也要学会使用WordPress提供的API来操作WordPress系统,例如:WP_Query (用于查询数据库) 、wp_enqueue script (用于加载JavaScript) 等。
总之,在进行WordPress二次开发时,建议始终保持代码结构清晰易读、注释规范、避免出现与其他插件、主题冲突的问题,以确保你的开发工作能够顺利进行并为用户带来良好的使用体验。

如何开发一个WordPress插件

本文假设你已经熟悉 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文件
***隐藏网址***
主页
最好为插件建立一个主页,以介绍插件的功能、安装方法、使用说明、适用的WordPress版本、插件更新信息等。
文件Headers
现在开始吧,首先让我们从向PHP主文件中加入一些信息
标准插件信息
插件的主文件顶部必须包括一个标准插件信息头。WordPress通过标准信息头识别插件的存在,并把她加入到控制面板的插件管理页面,这样插件才能激活,载入插件,并运行里面的函数;如果没有信息头,插件将无法激活和使用。标准信息插件头的格式为:
《?php/*Plugin Name: 插件名Plugin URI: 插件的介绍或更新地址Description: 插件描述Version: 插件版本,例如 1.0Author: 插件作者名称Author URI: 插件作者的链接License: A "Slug" license name e.g. GPL2*/?》
标准信息头至少要包括插件名称,这样WordPress才能识别你的插件。其他信息将显示在控制面板插件管理页面中。标准插件信息对各行顺序没有要求。
这样的升级机制能够正确地读出你的插件版本,建议你选择一个格式的版本号,不同版本之间,并坚持下去。例如,x.x中或x.x.x或xx.xx.xxx
注意:文件必须是 UTF-8 格式!
版权信息
通常我们还要在标准信息头中加入插件的许可证信息。大多数插件使用GPL或GPLCompatibleLicenses许可。如果使用GPL许可,要求插件中包含以下信息:
《?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 Examples, add_post_meta(), 以及与文章相关函数属性post.fuction meta (a.k.a. Custom Fields).
自定义分类法。对于文章分类或者其他对象,比如用户、评论,或者用户可列表中的数据名称/值,可以考虑使用自定义分类法,尤其是当你要访问的所有的文章/对象与给定的分类法项目相关联的时候。查阅 Custom Taxonomies
在数据库中创建一个新的自定义数据表。这种方法适合于与个人文章、页面、附件或者评论相关的数据,这类数据会随着时间越来越多,它们也没有专有名称。参看Creating Tables with Plugins来了解更多这类信息处理方法。
WordPress的选项机制
参看 Creating Options Pages 得到更多如何创建会自动保存你选项数据的页面。
WordPress拥有一个机制来保存,更新和检索WordPress数据库中专用,名称类数据(即"options"机制)。选项值可以是字符,数组或PHP对象(他们会被"序列化",或在存储前转换为字符,并在被检索时解开序列)。选项名称是字符,并且它们必须是独一无二的,这样就不会与其它的WordPress插件相冲突。
它也通常被认为是一个不错的主意,将你的插件使用的选项的数量降到最低。例如,考虑存储序列化数组的10个元素作为一个单一的命名选项,而不是存储10个不同的命名选项。
这里是你的插件应用WordPress option功能的主要函数。
add_option($name, $value, $deprecated, $autoload);
建立一个新的option; 如果这个option已经存在则不做动作.
$name
必须 (string). 要添加的option的名称.
$value
可选(string), 默认是空字符. option值会存在这里.
$deprecated
可选 (string), 不再被WordPress使用了,你可以不填或NULL 如果你希望应用后面的$autoload参数.
$autoload
可选, 默认为 ’yes’ (enum: ’yes’ or ’no’). 如果设置为 ’yes’ 那么这个option会被get_alloptions 函数自动检索.
get_option($option);
在数据库中检索option值.
$option
Required (string). 你想返回数值的option名称。你可以Option Reference在找到一个随着WordPress一起安装好的默认option表。
update_option($option_name, $newvalue);
更新或创建数据库中的option值(注意 add_option 不是必须被调用,如果你不想作用 $deprecated 或$autoload 参数).
$option_name
必须(string). 要更新的option名.
$newvalue
必须. (string|array|object) option的新值.
管理面板
假定你的插件有一些选项(option)存储于WordPress的数据库中(参看上一节),你可能会想要一个主控面板来允许你的插件用户查看和选项值。实现这一目标的方法阐述于Adding Administration Menus。
插件国际化
在你完成了你的插件的编写工作之后,另一个需要考虑的问题(假设你准备跟大家分享你的插件的话)就是将其国际化。国际化就是将你的软件设置成能够本地化的过程;本地化是将软件中显示的语言翻译成其他语言的过程。Wordpress正在被全球的人们使用,所以全球化和本地化是他内在的特性,这其中就包括了插件的本地化。
请注意,插件的语言文件是不会自动加载。将此插件代码,以确保加载的语言文件:
load_plugin_textdomain(’your-unique-name’, false, basename( dirname( __FILE__ ) ) . ’/languages’ );
要简单地取一个字符串使用 __(’String name’,’your-unique-name’); 返回翻译或者 _e(’String name’,’your-unique-name’); 输出翻译。翻译,然后进入你插件的 /languages 文件夹。
我们十分希望你能够将你的插件国际化,这样其他国家的用户就可以在自己的本地使用它了。我们有一个关于国际化的综合说明在I18n for WordPress Developers,这其中就包括了一个描述插件国际化的部分。
更新你的插件
***隐藏网址***
假设你已经提交你的插件到WordPress的插件库,随着时间的推移,你可能会发现需要将某些功能添加到插件或修正错误。更新代码,并将变化提交到你的插件主干(trunk),这些变化将是公开可见的,但仅限于在技术上志同道合的人通过SVN检查你的插件。其他用户通过网站或自己的WordPress插件管理下载都不会改变。
当你准备发布一个新版本的插件:
确保一切承诺和新版本的实际工作。注意所有版本的WordPress的插件支持,并尝试与他们进行测试。不要只是测试新功能,也确保你不小心打破一些插件的旧功能。
更改主要的PHP文件头注释中的版本号为新的版本号。
更改readme.txt文件的“Stable tag”字段中的版本号。
在readme.txt文件中添加一个新的小节“changelog“,简要介绍与最后一个版本相比,新版本有什么改变。这将列出的插件页面上的“更新日志”选项卡。
提交这些更改。
创建一个新的SVN标记作为副本主干(trunk),遵循 this guide。
给系统一个运行两三分钟,然后检查你的插件,看看更新是否一切正常,以及WordPress 是否提示插件有更新(更新检查可能有缓存,比如wordpress.org插件页面或后台安装,所以这可能需要一些时间 —— 尝试访问“可用更新”页面)。
故障排除:
wordpress.org插件的页面上仍然列出旧版本。你是否更新了树干文件夹’stable tag’ 字段?只创建一个标签和或更新readme.txt文件是不够的!
插件的页面提供了一个zip文件的新版本,但按钮仍然列出旧的版本号,而且WordPress 没有装更新通知。你是否已修改主要的PHP文件中“Version”版本号?
对于其他问题,请参考: The Plugins directory and readme.txt files
插件开发建议
最后这个部分是关于开发插件的一些建议。
WordPress插件的代码应该遵循 WordPress Coding Standards. 另外请同时参考Inline Documentation。
你的插件中所有函数的名称都应该与现存的Wordpress Core函数,其他插件或主题的任何名称不同。基于这个原因,我们建议你在你的插件的所有函数的名称之前加上一个你自己选择的前缀,或者把你的插件的函数都写在一个类里面(当然这个类的名字也必须是唯一的)。
请不要把Wordpress数据库表格前缀(通常是“wp_”)直接写在你的插件里,请使用$wpdb-》prefix 。
虽然数据库的读取相对便宜,但它的写入是相当昂贵的。数据库十分擅长获取信息并呈现给用户,而且这些操作(通常)是非常迅速的。然而对数据库进行改动就是一个非常复杂的过程了,而且需要使用更长的计算时间。因此,请尽量减少你对数据库进行写入的次数。在你编写程序的时候就做好所有的准备,这样就可以只在必须的时候再进行写入了。
在数据库里只SELECT你需要的东西。尽管数据库的读取十分便捷,我们依然推荐你值查找真正需要的数据,来尽量减少数据库的负载。例如,如果你只想获得表格的行数,不要使用 SELECT * FROM, 因为这样的话每一行中的所有数据都会被读出,导致内存的浪费。同样的,如果在插件中你只想获得post_id和post_author,请只 SELECT 这两项来减少数据库的负载。记住:在某一个操作的同时可能有其他上百个进程需要使用数据库,而数据库和服务器都必须同时满足所有这些进程的需求。学习怎样尽量减少你的插件对数据库的使用可以避免对这些资源的滥用。
不要让你的PHP出错。在你的wp_config.php文件中添加define(’WP_DEBUG’,true);,对你的所有函数进行测试来确定是否有任何的错误或者警告。有多少,就修复多少,直到再也不出现为止。
尽量不要直接调用《script》和《style》标记 —— 推荐使用 wp_enqueue_style() 和 wp_enqueue_script() 函数。他们帮助消除引用重复的脚本和样式,以及引进依赖的支持。

***隐藏网址***

wordpress建网站详细教程

使用WordPress建网站是一个相对简单的过程,只需遵循安装WordPress、选择主题、定制网站、添加内容和插件等步骤,就能成功搭建一个功能丰富的网站。
详细解释:
1. 安装WordPress:
首先,你需要一个域名和一台支持PHP和MySQL的服务器。购买并设置好这些后,你可以通过控制面板安装WordPress,或者通过FTP上传WordPress文件到服务器进行安装。安装过程中需要设置一些基本信息,如网站标题、管理员用户名和密码等。
2. 选择主题:
安装完成后,登录到你的WordPress后台,在“外观”选项下选择一款适合你的网站主题。WordPress自带一些默认主题,你也可以在官方主题库或第三方市场选择更多精美和实用的主题。注意选择与你网站目标和风格相匹配的主题。
3. 定制网站:
选择主题后,你可以开始定制你的网站。通过“外观”下的“自定义”选项,你可以更改网站的颜色、字体、布局等。此外,通过“页面”和“文章”选项,你可以添加或页面内容。如果需要更高级的定制,你可以主题的PHP和CSS文件,这需要一定的编程知识。
4. 添加内容和插件:
在“文章”和“页面”选项下添加你的网站内容,如博客文章、产品介绍、联系信息等。同时,你可以在“插件”选项下添加一些功能插件,如SEO优化、表单、社交分享等。WordPress有大量的免费和付费插件可供选择,它们可以极大增强你网站的功能和用户体验。
总结:以上就是使用WordPress建网站的基本步骤。需要注意的是,虽然WordPress是一个非常强大和易用的平台,但建立一个成功的网站仍需要投入时间和精力。你需要持续更新内容,优化用户体验,进行SEO推广等,才能使你的网站在互联网世界中脱颖而出。

如何快速为wordpress网站开发对外的数据接口

如何快速为wordpress网站开发对外的数据接口
随着移动互联网的发展,越来越的传统站点都在为移动化做努力,如开发一套手机专用的网站主题,甚至专门为其开发app!但是开发app(非嵌入移动版网页的PhoneGap),就会涉及到接口调用!如何才能在不影响网站原来内容、模板的情况下快速开发出可供第三方调用的数据接口呢?
也许有同学会说,wordpress具有强大的主题切换能力,通过一个简单的主题预览插件就可以实现不同主题显示不同的内容,接口就在另一个主题下实现!
没错,这种方式确实可以,但是由于wordpress目前cms功能越来越强大,很多网站都使用了自定义模板、register_post_type、register_nav_menus等功能,wordpress的主题切换不能很好的兼容这些地方(即使register_post_type代码照搬)。即使克服了以上的困难,如果以后网站增加版块或者新功能,要维护就得同时改动网站主题和api主题模板,工作量巨大。
那么有没有什么简单的方法呢?
当然有,不然我在这里罗里吧嗦开头那些屁话干啥!我的这个方法可以在原有的主题基础上进行方便的接口开发。
如何做呢?
首先在网站所用主题的functions.php文件中增加以下代码:
1: if(isset($_GET)){
2: add_filter(’template_include’,’wp_my_api’);
3: }
4: function wp_my_api($template){
5: return preg_replace(’#(+\.php)#’,’api/$1’,$template);
6: }
然后在网站当前所用主题目录下新建一个文件夹,名字为“api”。然后把主题下的模板文件复制进api文件夹里,就可以对这些模板进行接口数据转化了。比如输出json或者xml等。
这种方法原理就是将wordpress的模板重新定义到api文件下寻找同名模板文件。如果你愿意做更多的探寻,还可以实现更加智能的接口模板匹配功能出来。我这里就展示了最简单的方法。
这种方法完全不影响网站原有的模板文件,不需要改动任何原有模板,接口的实现在api文件夹下的同名文件里实现。
使用示例
要将你的主题下的page.php模板进行json化输出,只需要在api文件下新建一个叫page.php的模板(或者复制page.php过来),里面写入:
***隐藏网址***
2: header("Content-type:application/json");
3: if(isset($_GET)){
4: print_r($wp_query);
5: }else echo json_encode($wp_query);
***隐藏网址***
是不是很简单呢?如果你的网站不需要这个接口了,只需要直接删除api文件夹就行了。

如何用wordpress开发一个商城APP

您可以使用WordPress和WooCommerce插件来开发一个商城APP。以下是一些步骤:
1.注册域名和购买主机。
2.安装WordPress(免费)。
3.安装WooCommerce插件(免费)。
4.添加商品。
5.为网上商城选择主题(免费)。
6.让网上商城设计人性化。

如何开发一个WordPress插件

您好,是这样的:
1. All in One SEO Pack插件/ Wordpress博客优化插件
这是一个全方位的博客SEO插件, 使用的人非常的多. 它主要是通过对不面页面的Tittle和Meta以及描述信息等来增强SEO效果. 尽管事实上它的原理很简单, 通过修改主题代码也可以轻松实现 . 但对新手可能还是有些困难.
使用非常简单, 下载解压后, 将插件文件夹上传到插件目录, 在后台激活, 然后在Manage选项里面会找到设置面板, 根据提示设置即可.
P.S 插件作者对该插件的更新有点疯狂,几乎平均达到一周更新一次.但又不知道他到底更新或加强了些什么.
All in One SEo Pack 下载地址
2. Google XML Sitemaps/ 网站地图生成插件
这个插件可以用来你为生成一份支持各大主流搜索引擎的sitemap网站地图.比如Google, ask.com, Yahoo和MSN搜索等等.一份良好的网站地图有利于你的Wordpress博客内容被抓取和索引.这个插件生成的网站地图就是专门供搜索引擎的机器人 阅读的.
Goolge XML Sitemaps 下载地址
3. Simple Tags/Wordpress博客Tag标签插件
这个插件主要用来管理Wordpress的Tag标签.可以让你方便的为文章添加标签,管理,删除标签,批量管理标签,根据标签生成相关日志,相关标签,标签云等等.说的夸张点,有了这个插件,基本就不需要其它Tag类的插件了.
Slimple Tags 下载地址
4. WordPress Database Backup/ WordPress数据库备份插件
不管是博客还是网站, 数据库的备份都是相当重要的一件事情. 就算你会使用phpmyadmin, 但每次手动去备份也很麻烦, 且容易出错, 比如字符集之类的问题一旦没设置好, 很容易了现乱码之类的错误.
WordPress Database Backup是公认的非常优秀的Wordpress数据库备份插件. 使用它, 你可以轻松的备份你的博客数据库并可以指定下载到本地, 或是发送到邮件, 或是保存到虚拟主机上面. 你可以直接在WP后台操作, 并且可以选择要备份哪些表, 同时, 可以设置为自动备份.比如, 每周备份一次, 每月备份一次等等.
WordPress Database Backup下载地址
同时, 另一个数据库备份插件WP-DBManager也挺受欢迎, 有兴趣的朋友也可以研究一下. 不过据帕兰使用下来, 还是Wordpress Database Backup要好用一点, 简单方便, 且所备份的数据库通常不会出现乱码的情况.
5. Yskin’s wp-CJK-excerpt/ WordPress文章摘要插件
不管是出于SEO考虑还是阅读方便, 使用摘要输出文章到博客主页, 搜索页, 存档页都是一件必要的事情. (请注意, 这里所指的摘要输出是指博客页面的摘要显示, 并不是Feed阅读里面的摘要.)
尽管Wordpress内置的《?php the_excerpt(); ?》包含对摘要字数的高级参数设置, 但其对中文的支持并不友好. 所以, 我向大家推荐Yskin’s wp-CJK-excerpt, 通过这个插件, 可以很好的显示文章摘要, 并且它会在每篇摘要后生成一个带全文链接的字数统计.比如”阅读全文-共1250字”
Yskin’s wp-CJK-excerpt 下载地址
6. WP Slug Translate/ 生成良好的博客文章标题链接
如果你是一个懒人, 但又希望发布博客文章能有一个良好的链接形式, 那这个插件非常适合你. WordPress默认情况下, 当你发表一篇文章的时候, 如果你的标题是中文, 那就有可能得到:
***隐藏网址***
而使用这个插件, 它可以在你发表文章的时候, 把你的文章标题的链接通过Google翻译转换为英文, 比如:
***隐藏网址***
当不能通过Google翻译来转换的时候, 刚可能通过该插件内置的拼音库来转换.
需要注意的是:
1. 该插件的pinyin.php这个文件达1M多, 如果你已经启用了很多其它的插件, 再启用这个插件的时候, 通常会出现内存超出限制的错误提示. 解决的方法就是删了插件里面的这个pinyin.php文件. 删了的后果就是如果Google不能翻译文章标题的时候, 也就不能使用拼音了. 不过帕兰使用这个插件很长时间, 通常都是能翻译的. 实在碰到不行的, 自己设一下slug好了.
2. 使用这个插件的前提当然得是已经更改了Wordpress的默认Permalinks结构.
wp slug translate 下载地址
7. WP pagenavi/ 页面导航插件
WordPress默认的页面导航是“上一页”和”下一页”这种形式. 使用这个插件后得到的就是”1, 2, 3, 4….最后一页“这样的形式. 我不肯定, 但据我常使用以来, 后面这种页面导航形式似乎更有利于SEO. 当然, 就算不能实现搜索引擎优化, 当你的文章到达一定数量的时候, 使用数字列表的分类导航也更加方便用户的浏览查询.
WP-PageNavi 下载地址
8. Batch Categories/ 批量分类管理插件
使用这个Wordpress插件, 你可以批量为你的文章添加, 删除分类或标签. 当你的分类和标签比较多的时候, 使用它将能简化你的修改工作, 非常方便.
Batch Categories 下载地址
9. Akismet/ 防垃圾留言插件
这个之前已经在WordPress插件的使用这篇文章中介绍过, 使用它. 基本就不用担心Spammer的骚扰了. 当然, 误杀的情况还是存在的. 所以, 如果你不希望你访客的留言被无情删除, 还得定期查看一下是否有误杀。

如何解决WordPress插件开发问题 常见的WordPress插件开发问题

WP
的插件数量已经很多了,而且新的插件还在被不断地开发出来。如果不对插件开发进行规范和控制,插件很容易出现冲突、兼容性等问题。事实上,问题已经出现了。下面一品威客网为您罗列了一些常见的WordPress插件开发问题。
1、插件开发经常和
theme 有关,所以熟悉 WP 的主题相关的 html 代码对开发良好的、具有个性的插件非常有益。事实上 theme 开发是除过插件开发外,WP
二次开发的另一个重要的工作领域,用户需求旺盛,商业“钱”景也很诱人。
2、插件之间的冲突问题。

这个一般在安装很多插件的时候就可能出现,属于插件集成安装的问题。这个问题基本是不能通过测试来解决的。由于已有的插件未知,未来将要产生的插件更是一个未知数,所以通过测试解决冲突问题是个无法完成的任务。解决这个问题,需要插件开发者采取一些代码容错技巧来解决。例如本系列教程的插件示例重构部分,就主要考虑了插件的冲突,使插件代码更健壮。

3、插件的调试问题。
WP 二次开发,包括插件开发,是个比较困难的事情。好在 WP
已经提供了很多的容错的考虑,提供了很多错误提示信息,对插件开发是个很好的帮助。但有一种最糟糕的情况,就是插件调试时或安装后,激活后 WP
彻底地崩溃,屏幕没有任何显示,连错误也没机会被输送出来。这时只能手动从数据库卸载插件来解决问题,具体的就是从 wp_options
里删除插件的相关信息,然后再调试插件或删除插件文件(或/和文件夹)。
4、PHP 版本的兼容问题。

由于插件的开发者知识结构的差异和开发环境的不同,导致其生产出来的插件,有可能依赖具体的PHP版本。例如,面向对象技术的引入,就可能因为PHP4.0版本和5.0版本对OOP支持的差异,导致插件在PHP4.0和5.0环境下,表现出不同的运行结果。
这个问题可以通过广泛的PHP版本兼容性测试来解决。插件开发者需要比较了解PHP版本的兼容的知识,并且在插件开发时充分考虑兼容问题,再通过测试把关最后一道关口。如果是商业开发性质的插件产品,还需要对PHP的未来版本进行必要的考虑。

5、MySQL数据库兼容性问题。
全部使用 WP 的内置数据库操作对象(比如$wpdb)和 API 函数,这个问题一般不会出现。除非 WP
本身出现数据库兼容性问题。
6、WP 版本的兼容问题。
已经发现了一些插件,在高版本的 WP 下失效 -
不能运行的问题。所以插件开发还需要考虑 WP 的版本。尽量使用 WP
提供的的系统API函数,可以是问题得到缓解,但问题不能得到有效、彻底的解决。建议插件开发者尽量不要建立自己的表,尽量把数据保存到 WP 现有的表中。

要彻底解决WP 版本兼容问题,可能也只有依靠测试的把关了。

以上就是ordPress插件开发的一些问题,Wordpress能成为当今用户最多的blog程序,其强大的插件机制功不可没。灵活的插件接口吸引了无数开源爱好者,正如大家所说只要是想得到的需求,大多都可以查找下载到满足该需求的相应插件。如果您的企业需要网站插件开发、flash插件开发、手机插件开发等服务,都可以到一品威客网发布任务需求,百万专业威客给您最好的创意开发。

如何开发一个WordPress插件

在开始之前,需要注意三件事情
I、给插件取一个个性化的名字,越个性化越好,以防和其他插件重名冲突。
II、代码里面,一定要包含注释,不为自己,也要为想修改你代码的别人想想。
III、尽量用最新版的 WordPress 进行开发和测试。
插件名称和插件结构
一般来说,都是在 wp-content\plugins 目录下建立一个文件夹,文件夹名就是插件的名称,我们插件名字为"copyright_plugin",文件结构如下。
\wp-content\plugins\copyright_plugin下有copyright_plugin.php和readme.txt
这里的 readme.txt 文件中包含了一些插件的介绍,使用说明等信息,主要是提交到 WordPress 官方网站时候用到的,可以参考他们给的模板 ,另外还有插件截图预览的功能,需要另外添加图片,但是我们现在是练习,不需要提交到官网,所以暂时先不涉及这些。
插件的核心
总的来说,插件的核心是两个 function,用来添加 Hooks(中文译为钩子)
add_action ($hookname, $callbackfunction)
add_filter ($hookname,$callbackfunction)
这两个方法相当重要,几乎所有的插件都要用到他们。
Actions,我理解就是 wordpress 核心代码预留的一些特殊的切入点,或者说是在执行一些特定事件时候发生,例如文章发布时,或者访客留言时触发。
Filters,应该就是 wordpress 执行时,对数据传输过程的一种过滤机制,例如当文章保存到数据库的过程,或者文章从事数据库中取出,展现到浏览器中的这个过程。
我们今天要制作的插件,应该是用 Filters,因为我们要在文章显示在浏览器之前,在最后面加上一段字符窜,用来显示版权信息,后面添加菜单项的时候,也要用到 Actions。
插件概要信息
用文本器打开 copyright-plugin.php 文件,输入如下信息:
《?php
/*
Plugin Name: Copyright plugin
Plugin URI:
Description: 此插件将在文章正文最下面,显示一行版权信息
Version: 1.0.0
Author: xcxc
Author URI:
License: GPL
*/
?》
保存好文件,然后登录 WordPress 后台,打开插件菜单,应该就可以看到这个插件,已经显示在插件列表里面了,并且可以启用这个插件试试,不过没有任何效果,因为到目前为止,这个插件还没有实现任何功能。
为插件实现功能
修改copyright_plugin.php
《?php
/*
Plugin Name: Copyright plugin
Plugin URI:
Description: 此插件将在文章正文最下面,显示一行版权信息
Version: 1.0.0
Author: xcxc
Author URI:
License: GPL
*/
/* 此插件将在文章正文最下面,显示一行版权信息 */
function display_copyright() {
return "《p style=’color:red’》本站点所有文章均为原创,转载请注明出处!《/p》";
}
?》
保存好这个文件,然后打开正在用的主题文件夹,打开index.php 文件夹,找到 get_template_part( ’content’, get_post_format() ); 并在下面添加如下代码
if(function_exists(’display_copyright’)) {
echo display_copyright();
}
function_exists 是判断 display_copyright 函数是否存在,因为当插件停用的时候,主题代码里面是找不到这个函数的,所以要判断一下,防止出错。
然后在 wordpress 后台启用该插件,再打开首页看看效果吧!
至此,这段代码,应该可以勉强算是一个插件了。之所以说勉强,是因为这个插件存在一个问题,需要手工去修改主题代码,如果用户换了主题的话,需要在新主题里面再次修改代码,这个不好。
改良插件
还记得我们前面说过的 Hooks (钩子)吗,我们要开始用 Filter 钩子了!
代码修改copyright_plugin.php如下:
《?php
/*
Plugin Name: Copyright plugin
Plugin URI:
Description: 此插件将在文章正文最下面,显示一行版权信息
Version: 1.0.0
Author: xcxc
Author URI:
License: GPL
*/
add_filter( ’the_content’, ’display_copyright’ );
/* 这个函数在日志正文结尾处添加一段版权信息,并且只在 首页 页面才添加 */
function display_copyright( $content ) {
if( is_home() )
$content = $content . "《p style=’color:red’》本站点所有文章均为原创,转载请指明出处!《/p》";
return $content;
}
?》
参看以上代码,其中 the_content 是钩子的名字,display_copyright 是回调函数名称。这样一来,只要启用插件就可以实现功能,无需去修改主题了,请把刚才在index.php 文件中添加的代码删掉,然后启用插件,看看效果吧,显示效果应该是一样的,无论怎么换主题,还是会自动显示版权信息。
is_home是判断是不是主页
更进一步
至此一个真正的插件算是完成了。但是此插件将版权信息直接写在代码里,如果用户想自定义版权信息的话,需要修改插件的源代码,仍然不方便,所以此插件仍需改进。其实,我们可以在 WordPress 后台中为插件单独添加一个菜单和页面,用户可以在这里来自定义设置设置版权信息,信息可以保存在数据库里面。
先附上完整代码,后面会做说明
《?php
/*
Plugin Name: Copyright plugin
Plugin URI:
Description: 此插件将在文章正文最下面,显示一行版权信息
Version: 1.0.0
Author: xcxc
Author URI:
License: GPL
*/
/* 注册激活插件时要调用的函数 */
register_activation_hook( __FILE__, ’display_copyright_install’);
/* 注册停用插件时要调用的函数 */
register_deactivation_hook( __FILE__, ’display_copyright_remove’ );
function display_copyright_install() {
/* 在数据库的 wp_options 表中添加一条记录,第二个参数为默认值 */
add_option("display_copyright_text", "《p style=’color:red’》本站点所有文章均为原创,转载请注明出处!《/p》", ’’, ’yes’);
}
function display_copyright_remove() {
/* 删除 wp_options 表中的对应记录 */
delete_option(’display_copyright_text’);
}
if( is_admin() ) {
/* 利用 admin_menu 钩子,添加菜单 */
add_action(’admin_menu’, ’display_copyright_menu’);
}
function display_copyright_menu() {
/* add_options_page( $page_title, $menu_title, $capability, $menu_slug, $function); */
/* 页名称,菜单名称,访问级别,菜单别名,点击该菜单时的回调函数(用以显示设置页面) */
add_options_page(’Set Copyright’, ’Copyright Menu’, ’administrator’,’display_copyright’, ’display_copyright_html_page’);
}
function display_copyright_html_page() {
?》
《div》
《h3》Set Copyright《/h3》
《form method="post" action="options.php"》
《?php /* 下面这行代码用来保存表单中内容到数据库 */ ?》
《?php wp_nonce_field(’update-options’); ?》
《p》
《textarea
name="display_copyright_text"
id="display_copyright_text"
cols="40"
rows="6"》《?php echo get_option(’display_copyright_text’); ?》《/textarea》
《/p》
《p》
《input type="hidden" name="action" value="update" /》
《input type="hidden" name="page_options" value="display_copyright_text" /》
《input type="submit" value="Save" class="button-primary" /》
《/p》
《/form》
《/div》
《?php
}
add_filter( ’the_content’, ’display_copyright’ );
/* 这个函数在日志正文结尾处添加一段版权信息,并且只在 首页 页面才添加 */
function display_copyright( $content ) {
if( is_home() )
$content = $content . get_option(’display_copyright_text’);
return $content;
}
?》
说明:
以下代码自己要是在启用插件时和停用插件时调用,注释中已经写得很详细了。
/* 注册激活插件时要调用的函数 */
register_activation_hook( __FILE__, ’display_copyright_install’);
/* 注册停用插件时要调用的函数 */
register_deactivation_hook( __FILE__, ’display_copyright_remove’ );
function display_copyright_install() {
/* 在数据库的 wp_options 表中添加一条记录,第二个参数为默认值 */
add_option("display_copyright_text", "《p style=’color:red’》本站点所有文章均为原创,转载请注明出处!《/p》", ’’, ’yes’);
}
function display_copyright_remove() {
/* 删除 wp_options 表中的对应记录 */
delete_option(’display_copyright_text’);
}
添加菜单和页面的代码如下:
if( is_admin() ) {
/* 利用 admin_menu 钩子,添加菜单 */
add_action(’admin_menu’, ’display_copyright_menu’);
}
function display_copyright_menu() {
/* add_options_page( $page_title, $menu_title, $capability, $menu_slug, $function); */
/* 页名称,菜单名称,访问级别,菜单别名,点击该菜单时的回调函数(用以显示设置页面) */
add_options_page(’Set Copyright’, ’Copyright Menu’, ’administrator’,’display_copyright’, ’display_copyright_html_page’);
}
至此,已经可以在后台看到菜单项了,但是点击的话,还会出错,因为还没有添加对应的页面(如何自定义添加后台菜单位置)
下面开始添加页面,主要代码如下:
function display_copyright_html_page() {
?》
《div》
《h3》Set Copyright《/h3》
《form method="post" action="options.php"》
《?php /* 下面这行代码用来保存表单中内容到数据库 */ ?》
《?php wp_nonce_field(’update-options’); ?》
《p》
《textarea
name="display_copyright_text"
id="display_copyright_text"
cols="40"
rows="6"》《?php echo get_option(’display_copyright_text’); ?》《/textarea》
《/p》
《p》
《input type="hidden" name="action" value="update" /》
《input type="hidden" name="page_options" value="display_copyright_text" /》
《input type="submit" value="Save" class="button-primary" /》
《/p》
《/form》
《/div》
《?php
}
现在再去点击刚才新加的菜单,可以显示出来一个页面了,我们可以在这里设置版权信息文本。
另外还有如下代码要修改
/* 这个函数在日志正文结尾处添加一段版权信息,并且只在 首页 页面才添加 */
function display_copyright( $content ) {
if( is_home() )
$content = $content . get_option(’display_copyright_text’);
return $content;
}
将原来的静态化文本,改成动态的,之所以要这么改,是因为我们已经将数据存到数据库里面了,这里要从数据库里面取出数据。

文章分享结束,wordpress插件开发接口和如何进行wordpress的二次开发的答案你都知道了吗?欢迎再次光临本站哦!

wordpress插件开发接口(如何进行wordpress的二次开发)

本文编辑:admin

更多文章:


上海工程技术大学好不好(上海工程技术大学怎么样)

上海工程技术大学好不好(上海工程技术大学怎么样)

大家好,今天小编来为大家解答以下的问题,关于上海工程技术大学好不好,上海工程技术大学怎么样这个很多人还不知道,现在让我们一起来看看吧!

2026年10月11日 21:40

欧洲国家联赛斯洛伐克vs白俄罗斯(法国欧洲杯预选赛斯洛伐克VS乌克兰,会打加时赛吗)

欧洲国家联赛斯洛伐克vs白俄罗斯(法国欧洲杯预选赛斯洛伐克VS乌克兰,会打加时赛吗)

各位老铁们好,相信很多人对欧洲国家联赛斯洛伐克vs白俄罗斯都不是特别的了解,因此呢,今天就来为大家分享下关于欧洲国家联赛斯洛伐克vs白俄罗斯以及法国欧洲杯预选赛斯洛伐克VS乌克兰,会打加时赛吗的问题知识,还望可以帮助大家,解决大家的一些困惑

2026年10月11日 20:50

windows dhcp服务器配置(电脑如何开启DHCP服务呢)

windows dhcp服务器配置(电脑如何开启DHCP服务呢)

大家好,windows dhcp服务器配置相信很多的网友都不是很明白,包括电脑如何开启DHCP服务呢也是一样,不过没有关系,接下来就来为大家分享关于windows dhcp服务器配置和电脑如何开启DHCP服务呢的一些知识点,大家可以关注收藏

2026年10月11日 19:50

高防云服务器恒创(恒创服务器怎么样靠谱高防)

高防云服务器恒创(恒创服务器怎么样靠谱高防)

本篇文章给大家谈谈高防云服务器恒创,以及恒创服务器怎么样靠谱高防对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

2026年10月11日 18:20

企业使用织梦cms会被起诉吗(dedecms收费合理合法吗中小企业该怎么办)

企业使用织梦cms会被起诉吗(dedecms收费合理合法吗中小企业该怎么办)

今天给各位分享dedecms收费合理合法吗中小企业该怎么办的知识,其中也会对dedecms收费合理合法吗中小企业该怎么办进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年10月11日 17:50

西班牙大学申请(西班牙留学申请指南:学历和资金要求详解)

西班牙大学申请(西班牙留学申请指南:学历和资金要求详解)

大家好,关于西班牙大学申请很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于西班牙留学申请指南:学历和资金要求详解的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

2026年10月11日 11:00

东莞电信宽带测速工具(电信宽带如何测速需要了解以下内容)

东莞电信宽带测速工具(电信宽带如何测速需要了解以下内容)

大家好,东莞电信宽带测速工具相信很多的网友都不是很明白,包括电信宽带如何测速需要了解以下内容也是一样,不过没有关系,接下来就来为大家分享关于东莞电信宽带测速工具和电信宽带如何测速需要了解以下内容的一些知识点,大家可以关注收藏,免得下次来找不

2026年10月11日 09:50

浙江科技学院考研率高吗(浙江工业大学和浙江科技学院考研哪个好考)

浙江科技学院考研率高吗(浙江工业大学和浙江科技学院考研哪个好考)

各位老铁们,大家好,今天由我来为大家分享浙江科技学院考研率高吗,以及浙江工业大学和浙江科技学院考研哪个好考的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

2026年10月11日 07:30

香港与祖国内地的经济合作关系(如何理解香港澳门与祖国内地的关系)

香港与祖国内地的经济合作关系(如何理解香港澳门与祖国内地的关系)

大家好,关于香港与祖国内地的经济合作关系很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于如何理解香港澳门与祖国内地的关系的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有

2026年10月11日 06:30

天津大学仁爱学院6教闹鬼(天津仁爱学院真实评价)

天津大学仁爱学院6教闹鬼(天津仁爱学院真实评价)

大家好,今天小编来为大家解答以下的问题,关于天津大学仁爱学院6教闹鬼,天津仁爱学院真实评价这个很多人还不知道,现在让我们一起来看看吧!

2026年10月11日 05:00

最近更新

olympics音标(there are summer olympics and winter olympics是什么意思)
2026-10-11 21:50:03 浏览:0
华硕f8笔记本硬盘(华硕F8更换硬盘)
2026-10-11 21:30:05 浏览:0
1+手机11pro(一加11pro参数)
2026-10-11 20:30:02 浏览:0
函数的类型有哪些?函数类型有哪些
2026-10-11 20:20:03 浏览:0
热门文章

标签列表