wordpress开发之插件开发初识(wordpress插件开发根底)

首先,你要在wp-content/plugins/下建设一个文件夹,文件夹的名字最好只由字母、数字、“-”和下滑组成。同时,还要在这个文件夹下建设一个同名的php文件。比方你的文件夹名字为my-plugin,则php的名字就是my-plugin.php,这个文件做为你plugin的主文件,像主题文件的sytle.css文件一样,它的头部蕴含了对这个插件的形容信息。上面是一个简略的例子:


< ?php
/*
Plugin Name: 插件称号
Plugin URI: http://URI_Of_Page_Describing_Plugin_and_Updates
Description: 插件的简略形容
Version: 插件版本号, 例如: 1.0
Author: 插件作者
Author URI: http://URI_Of_The_Plugin_Author作者地址
*/
?>

另外假如你想要把你的插件提交到wordpress.org上,你还要在文件夹中增加一个readme.txt文件。就像主题中的style.css文件一样。相似的,readme.txt的头部蕴含了对这个插件的根本形容信息。对于readme.txt的格局,能够参考WordPress的民间示例。由于这里只是简略的写一个可用的Plugin,就不引见reaadme.txt了。
WordPress的插件其实就是一堆php的办法。这些办法经过调用零碎自带的钩子来为博客添加新的性能。上面咱们就来看一下什么是零碎的钩子。
插件钩子

WordPress定义了很多不同用处的钩子,在Wordpress运转的不同阶段,它会检测以后阶段能否注册了钩子函数,假如有,则优先执行这些函数。增加filter的办法如下:

add_filter('filter_name', 'filter_callback_function_name', $priority=10, $accepted_args=1); 

add_fitler的四个参数辨别是:要挂载的钩子的称号,钩子的回调函数,回调函数的优先级,回调函数的参数个数。一个例子如下:


add_fitler('the_title', 'my_title', 10, 2);
function my_title($title, $id) {
return News:$title;
}

这个例子中,咱们在the_title钩子上挂载了一个my_title的函数,这个函数承受两个参数,每别是文章的题目和ID,当Wordpress要把文章post给阅读器之前,会首先调用到这个函数,在这里,咱们在每个文章的题目前加了一个“News:”。
对于Wordpress所提供的一切钩子,能够参考Wordpress的官网文档:Filter Reference。
另外你可能会在某些文章中看到令一个增加钩子的函数add_action。咱们来看一下wordpress的内核你或者就明确了:


function add_action($tag, $function_to_add, $priority = 10, $accept_args = 1) {
return add_filter($tag, $function_to_add, $priority, $accept_args);
}

所以add_action和add_filter实质上没有任何区别。
之前说过,Wordpress会在零碎的不同阶段调用不同的钩子,其实,假如需求,你也能够在你的代码行家动调用这些钩子。办法如下:


$return_values = apply_filtere('filter_name', $args ... );

有了这些filter,你就能够在wordpress解决流程中的恣意中央修正数据内容,完成插件所需求的性能。
Option机制

仅仅有了filter还不够,很多插件还需求保留一些信息,比如插件的属性设置之类,这个时分你就要用到Wordpress的Option机制了。
WordPress的Option机制经过add_option,get_option, update_option三个函数来完成,三个函数的定义如下:


add_option($name, $value, $deprecated, $autoload);
get_option($name);
update_option($option_name, $newvalue);

add_option有4个参数,性能辨别如下:
$name:必选,变量名
$value:可选,变量值,默许为空字符
$deprecated:没用的参数,纯正是历史**成绩。留着它只是为了兼容以有的插件。当然假如你要调用到前面的$autoload,你需求为它传入一个空字符或null。
$autoload: “yes” or “no”,默许是”yes”,当设为”yes”时,该属性会在wp_load_alloptions调用时获取到。
get_option用来获取你增加的参数,同时零碎中曾经默许定义了一些参数,你能够参考Wordpress的民间列表:Option Refernce。
而update_option则是用来更新option。
三个办法都比拟好了解,我也不多说了。经过这三个办法你能够把你需求短暂保留的数据放在数据库中。
设置页面

有了filter和option,咱们曾经实现了一个插件的外围工作。不过做为一个插件,它常常还需求为用户提供一个设置页面,也就是在Wordpress后盾插件列表中所看到的settings链接,如下图:
settings
这里咱们用一个最简略的例子还阐明如何增加一个设置页面:


<?php class wctest{
public function __construct(){
if(is_admin()){
add_action('admin_menu', array($this, 'add_plugin_page'));
add_action('admin_init', array($this, 'page_init'));
}
}
public function add_plugin_page(){
// This page will be under "Settings"
add_options_page('Settings Admin', 'Settings', 'manage_options', 'test-setting-admin', array($this, 'create_admin_page'));
}
public function create_admin_page(){
?>
<p>
< ?php screen_icon(); ?>
<h2>Settings</h2>
<form method=”post” action=”options.php”>
< ?php
// This prints out all hidden setting fields
settings_fields(‘test_option_group’);
do_settings_sections(‘test-setting-admin’);
?>
< ?php submit_button(); ?>
</form>
</p>
< ?php
}
public function page_init(){
register_setting(‘test_option_group’, ‘array_key’, array($this, ‘check_ID’));
add_settings_section(
‘setting_section_id’,
‘Setting’,
array($this, ‘print_section_info’),
‘test-setting-admin’
);
add_settings_field(
‘some_id’,
‘Some ID(Title)’,
array($this, ‘create_an_id_field’),
‘test-setting-admin’,
‘setting_section_id’
);
}
public function check_ID($input){
if(is_numeric($input['some_id'])){
$mid = $input['some_id'];
if(get_option(‘test_some_id’) === FALSE){
add_option(‘test_some_id’, $mid);
}else{
update_option(‘test_some_id’, $mid);
}
}else{
$mid = ”;
}
return $mid;
}
public function print_section_info(){
print ‘Enter your setting below:’;
}
public function create_an_id_field(){
?><input type=”text” id=”input_whatever_unique_id_I_want” name=”array_key[some_id]” value=”<?=get_option(‘test_some_id’);?/>” />< ?php
}
}
$wctest = new wctest();

下面创立的类会在你的Wordpress后盾增加一个新页面,同时它容许用户保留一个id值。

到这里,咱们一个简略的Wordpress插件就实现了。尽管这个插件自身没有什么用处。谢谢大家。

以上就是安达网络工作室关于《wordpress开发之插件开发初识(wordpress插件开发基础)》的一些看法。更多内容请查看本栏目更多内容!

本文相关话题: wordpress 插件开发
版权声明:本文为 安达网络工作室 转载文章,如有侵权请联系我们及时删除。
相关文章
wordpress不支持中文用户名的处理办法

本文实例讲述了wordpress不支持中文用户名的处理办法。分享给大家供大家参考。详细剖析如下: 处理这一成绩...

WordPress的文章主动增加要害词及要害词的SEO优化

网站的要害字及网页形容关系网站对搜寻引擎的敌对水平,假如本人手动加显然太折腾了,那如何让wordpress博客...

从站内查用WordPress站内文章的完成办法

最近遇到一个从站内查用WordPress站内文章成绩,详细是这样的:需求在A站的首页或许侧边栏援用B站点的最新文...

输入WordPress数据库查问的详细内容 缩小数据库查问次数

最近做一个wordpress的企业模板,关注了一下查问次数这个货色! 在 footer.php 里增加了如下代码,以显示wo...

WordPress投稿性能增加邮件提示性能的办法

一、增加一个存储投稿者邮箱的自定义栏目   关上WordPress增加投稿性能,上面咱们将对这篇文章中的代码进...

wordpress数据库优化和清算冗余数据的办法

提醒:清算前请先备份数据库,以防出不测。 经理论发现,只需执行顺次执行上面5个语句,就能够清算的比拟洁...

需求提交

客服服务