公告:网址大全导航目录www.btv85.com为各位站长提供免费收录网站的服务,VIP会员每天提交网站30、文章30免审核,快审服务(10元/站),可自助充值发布。

点击这里在线咨询客服 点击这里在线咨询客服
新站提交
  • 网站:223084
  • 待审:0
  • 小程序:16453
  • 文章:25975
  • 会员:237

今天BTV导航网的小编为你讲一下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(){
?>
<div>
< ?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>
</div>
< ?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插件开发基础类似的相关内容推荐,可以你更全面的帮助你解决问题。我们BTV85网址导航还提供网址收录服务,你可以注册提交你的网站信息,帮你引导搜索引擎蜘蛛,同时还有网站SEO优化交流微信群,里面很多SEO高手和大咖,加友链,可以免费进群。

wordpress开发之插件开发初识(wordpress插件开发基础同类内容推荐:
  • 假未来FakeFuture新手基础建设指南

    假未来FakeFuture新手基建怎么弄?这款模拟经营游戏开测了二测,有不少萌新入坑,前期最关键的点是“基础建设”。 2022-12-13

  • 剑侠风云基础六木套装组合分享

    剑侠风云里面的搭配套路有很多,部分比较适合前期新手使用,比如基础六木套装,可以用刮痧打法磨死对手,搭配很简单 2022-12-13

  • 数码宝贝新世纪维纳斯兽插件选取推荐

    数码宝贝新世纪维纳斯兽插件怎么选择?插件可以提供属性加成帮助,大家可以根据数码兽的属性特点进行搭配。本站 2022-10-12

  • 4大专场汇聚20位海内外嘉宾,2022N.Game网易游戏开发者峰会开启报名

    2022 N.GAME 网易游戏开发者峰会将于 4 月 18-21 日每日下午 3 点在线上举行。本届峰会以“未来已来”为主 2022-10-12

  • 原神初识暗渊毒瘴现任务攻略详细介绍

    原神初识暗渊毒瘴现任务怎么做?初识暗渊毒瘴现是原神方入巨渊初探勘任务中触发的分支之一,下面就为大家带来初 2022-10-12

  • wordpress做企业网站能够吗

    关于wordpress和企业网站的问题,笔者简单的从两个方面做了介绍。可以看到wordpress是可以并且适合搭建企业网 2022-10-12

  • JetBrains 将其 Rider IDE 扩展到 Unreal Engine 游戏开发

    北京 2022 年 5 月 5 日 – 为多种编程语言创建扩展 IDE 系列的公司 JetBrains 宣布了在 Rider 2022.1 大版 2022-10-11

  • 艾克索拉在开发商工具和服务中添加NFT Checkout新功能

    在原有的移动和数字发行解决方案基础上,艾克索拉现推出新产品,在持续完善的开发商工具和服务中添加NFT Checko 2022-10-11

  • wordpress做的博客为什么不被收录

    总而言之,wordpress做的博客为什么不被收录,其根本原因在于网站本身,跟wordpress这个博客程序没有关系。这就好 2022-10-11

  • 原神宵宫90级基础属性数据面板大全

    原神宵宫90级满破暴击率是多少?“宵宫”是非常强力的火系主C,预计会在2.8版本复刻,很多人想知道宵宫具体面板。 2022-10-11

  •   admin

    注册时间:

    网站:0 个   小程序:0 个  文章:0 篇

    • 223084

      网站

    • 16453

      小程序

    • 25975

      文章

    • 237

      会员

    赶快注册账号,推广您的网站吧!
    热门网站
    最新入驻小程序

    小朋友猜谜语2021-05-24

    小朋友猜谜语是一款学习教育类的

    球比分2021-05-24

    球比分是一款体育运动类的小程序

    匠人名片2021-05-24

    匠人名片是一款交友社交类的小程

    知晴2021-05-24

    知晴是一款生活服务类的小程序应

    优惠券查询工具2021-05-24

    优惠券查询工具是一款其他工具类

    成语词典汉字拼音故事大全字典2021-05-24

    成语词典汉字拼音故事大全字典是