学做网站培训课程介绍

当前位置:

WordPress插件开发教程:教你怎么开发WordPress插件

WP插件常识

Hook(钩子)是WordPress提供的,允许你的插件“勾入”WordPress的程序,或者说,可以在特定时候执行你插件中的函数,从而使得你的WordPress插件执行。

这里提供了两种hook:

Action:Action(动作)是WordPress程序核心在程序执行的特殊点(特定事件发生)加载的。使用Action API,你的插件可以在这些特殊点执行一个或者多个在插件中编写的PHP函数。

Filter:Filter(过滤器)是WordPress加载的,当文本被存入网站数据库或发送到浏览器之前,Filter可用来对其进行多种类型的处理。使用Filter,你的插件可以使用定义在其中的PHP函数来对文本进行多种处理。

WP插件类型

WP插件可以是一个PHP文件,也可以是一个文件夹。

WP识别插件的方法:

  • 插件名字:必须唯一
  • 插件标准头信息
    
    
    /*
    Plugin Name: all in one simple
    Plugin URI: http://www.xuewangzhan.net
    Version:V1.01
    Author: 学做网站论坛
    Author URI:http://www.xuewangzhan.net
    Description:学做网站论坛all in one seo插件
    */
  • 如果要上传到插件库,需要有一个标准的txt

WP插件操作方法:

  • add_action(); 动作。运行过程中执行函数
  • Add_filter(); 过滤器。Filter建立在数据库到浏览器之间的处理。运行之前执行函数处理数据。例如:获取文章摘要,就先把整个文章处理成摘要后,再输出。

WP插件制作步骤

第一步:注册插件菜单项

1、在“设置”中添加一个菜单


function show_menu(){
add_options_page('浏览器头部显示标题','设置栏名称', 8, __FILE__, '调用其它函数的名称');
}

代码中的8是当前函数被执行的顺序(默认为10)。该参数指定的更小的数字会被更早的执行

 

2、在左侧菜单中直接显示


function show_menu(){
add_menu_page( $page_title, $menu_title, $capability, $menu_slug, $function, $icon_url, $position );

add_submenu_page( $parent_slug, $page_title, $menu_title, $capability, $menu_slug, $function);//二级菜单

}

 

第二步:设置处理机制

 


if ( is_admin() ){ //判断是不是后台管理页

add_action('admin_menu','show_menu');//在登录后台后调用show_menu函数

add_action('admin_init', 'register_mysettings' );//在登录后台后调用register_mysettings函数

add_filter('wp_head','showall');//在网站前台调用wp_head()时,调用showall函数

 

}

 

第三步:设置处理功能函数

 

使用register_setting自动在数据表wp-options里添加二个参数keyword和des,并且添加通过表单添加值。


 

function register_mysettings() {

register_setting('myoption-group', 'keyword');

register_setting('myoption-group', 'des');

}

 

<form method="post" action="options.php">

<?php settings_fields( 'myoption-group'); ?>//与上面的函数建立关联

<table class="form-table">

<tr valign="top">

<th scope="row">关键字:</th>

<td><input type="text" name="keyword" size="100" value="<?php echo get_option('keyword'); ?>" /></td>

</tr>

<tr valign="top">

<th scope="row">描述:</th>

<td><input type="text" name="des" size="100" value="<?php echo get_option('des'); ?>" /></td>

</tr>

</table>

 

<p class="submit">

<input type="submit" class="button-primary" value="<?php _e('保存设置') ?>" />

</p>

 

</form>

 

获取wp-options里参数值,然后输出html代码


 

function showall(){

$keywords=get_option('keyword');

$description = get_option('des');

echo "<meta name=".'"keywords"'." content=".'"'.$keywords.'"'." />";

echo "<meta name=".'"description"'." content=".'"'.$description.'"'." />";

}

 

删除Action和Filter

在某些情况下,你会发现你希望你的插件屏蔽WordPress内建或者其他插件加入的Action或Filter。

你可以通过执行remove_filter('filter_hook','filter_function')函数或者remove_action('action_hook','action_function')函数来实现。

举例来说,remove_action('publish_post','generic_ping');会使得你在发表新日志时不发送日志引用(ping)。

插件开发文档:

https://developer.wordpress.org/plugins/

官网插件API文档:

https://www.xuewangzhan.net/baike/wpbaike-43893.html

Fi1ter参考文档:

https://www.xuewangzhan.net/baike/wpbaike-43878.html

action参考文档:

https://www.xuewangzhan.net/baike/wpbaike-43888.html

主题开发文档:

https://developer.wordpress.org/themes/

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

相关教程

  • 默认情况下Wordpress后台只有文章和页面二种文章类型,如果我们建企业网站,所发布的产品与文章就会合在一起,不方便管理。怎么在wordpress后台菜单添
  • 我们安装WORDPRESS 插件时,插件需要加载用钩子挂载WordPress 自带的 jQuery库而非是通过硬编码的方式来加载,毕竟是为了避免多次加载 jQuery库。但在
  • wordpress默认情况下后台只支持mail函数方式设置发邮件,但是现在大多数虚拟主机是不支持mail函数的,因为会导致垃圾邮件的产生而服务器ip被大量列入
  • WordPress搜索页如果需要显示搜索结果的数量,一般是使用WordPress自带的函数$found_posts来显示。通常用法是:<?php echo $wp_query->found
  • 我们做网站时,如何将分类栏目里的置顶文章显示在最前面呢?然后再显示新发布的文章。怎么实现在调用最新文章列表中置顶文章靠前显示呢?代码如下:
  • WordPress网站后台上传了图片之后,每个图片都会有ID,我们在建网站时,可以通过图片ID来获取图片的路径。怎么通过图片附件的ID来获取图片的路径呢?
  • wordpress每增加一个分类目录,就会分配一个唯一的ID号。分类目录ID号相当于分类目录的身份证号,在网站制作过程中,我们需要经常使用到ID号。那么如
  • WordPress建好网站之后,往往由于服务器本身漏洞、网站后台使用弱密码登录等原因,造成网站被黑,植入了非正规的垃圾代码。造成网站跳转或者打不开。
  • 有时候,我们想用一个域名,做好几种语言的网站。在互联网领域内,一般说这类网站叫做,多语种网站。  WordPress网站也可以做成多语种的。本地网站
  • 使用WordPress做网站时,往往需要给网站设置伪静态规则。WordPress网站在不同服务器环境下的伪静态规则是不一样的。下面分享一下WordPress网站在Nginx