WordPress作为全球最受欢迎的博客平台和内容管理系统,拥有庞大的用户群体和丰富的插件生态。在WordPress开发过程中,注册函数是不可或缺的一部分。本文将带你深入了解WordPress注册函数,从入门到进阶,让你轻松掌握这一核心技能。
一、什么是WordPress注册函数?
在WordPress中,注册函数是指用于注册各种钩子(hook)的函数。这些钩子包括动作钩子(action hook)和过滤器钩子(filter hook)。通过注册函数,我们可以控制WordPress的各种行为,如自定义菜单、插件功能、主题样式等。
二、WordPress注册函数的分类
WordPress注册函数主要分为以下几类:
1. 动作钩子注册函数:用于注册动作钩子,允许我们在特定的事件发生时执行代码。
2. 过滤器钩子注册函数:用于注册过滤器钩子,允许我们在数据输出之前修改数据。
3. 其他注册函数:如注册菜单、短代码、插件钩子等。
三、WordPress注册函数入门
1. 动作钩子注册函数
示例:
“`php
function my_action_function() {
// 执行代码
}
add_action(‘some_action’, ‘my_action_function’);
“`
在这个例子中,我们定义了一个名为`my_action_function`的函数,并在`some_action`动作钩子上注册了这个函数。
2. 过滤器钩子注册函数
示例:
“`php
function my_filter_function($value) {
// 修改值
return $value;
}
add_filter(‘some_filter’, ‘my_filter_function’);
“`
在这个例子中,我们定义了一个名为`my_filter_function`的函数,并在`some_filter`过滤器钩子上注册了这个函数。
四、WordPress注册函数进阶
1. 钩子参数
许多注册函数都接受参数,这些参数可以用于控制钩子的行为。
示例:
“`php
add_action(‘some_action’, ‘my_action_function’, 10, 3);
“`
在这个例子中,`my_action_function`函数注册在`some_action`动作钩子上,优先级为10,并接受3个参数。
2. 钩子回调
钩子回调是指注册函数中执行的代码。在回调中,我们可以访问钩子参数并进行相应的操作。
示例:
“`php
function my_action_function($param1, $param2) {
// 使用参数
echo $param1 . $param2;
}
“`
在这个例子中,`my_action_function`函数接受两个参数,并在回调中进行了操作。
3. 钩子优先级
钩子优先级决定了钩子执行的顺序。优先级数值越小,钩子执行越早。
示例:
“`php
add_action(‘some_action’, ‘my_action_function_1’, 10);
add_action(‘some_action’, ‘my_action_function_2’, 20);
“`
在这个例子中,`my_action_function_1`函数优先级为10,`my_action_function_2`函数优先级为20,因此`my_action_function_1`函数将先执行。
五、常见注册函数
以下是一些常见的WordPress注册函数:
| 函数名 | 作用 |
|---|---|
| add_action | 注册动作钩子 |
| add_filter | 注册过滤器钩子 |
| add_menu_page | 添加自定义菜单页面 |
| add_shortcode | 添加短代码 |
| register_post_type | 注册自定义文章类型 |
| register_taxonomy | 注册自定义分类法 |
| register_widget | 注册小工具 |
| wp_enqueue_script | 注册脚本 |
| wp_enqueue_style | 注册样式 |
六、总结
WordPress注册函数是WordPress开发中的核心技能,掌握注册函数可以帮助我们更好地控制WordPress的行为。本文从入门到进阶,详细介绍了WordPress注册函数的相关知识,希望对您有所帮助。
| 阶段 | 内容 |
|---|---|
| 入门 | 了解注册函数的概念、分类、入门示例 |
| 进阶 | 掌握钩子参数、钩子回调、钩子优先级、常见注册函数 |
| 实践 | 通过实际项目应用注册函数,提高开发技能 |
| 总结 | 复习本文内容,巩固注册函数知识,为后续学习打下坚实基础 |
希望您在阅读本文后,能够对WordPress注册函数有更深入的了解,为您的WordPress开发之路助力。
如何开发一个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>
<h2>Set Copyright</h2>
<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>
<h2>Set Copyright</h2>
<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建站教程
假如你是一个菜鸟,也能从0开始,10分钟学会搭建(wordpress,Dede,Discuz!..)网站。
网站=域名+空间和数据库+网站程序+模板
1准备材料【域名】网址就相当于家的住址,记住和找到家的位置。可在阿里云,新网,爱名网或其它IDC商购买注册。
【空间和数据库】就是盖房子的地基。同样可在阿里云,新网,爱名网或其它IDC商购买。空间的环境视程序要求不同而不同,不过现在网站程序环境要求基本都是php+mysql。
【程序】就是家的主体框架,是整个家的运转中心。可以选择Wordpress个人博客,Dede内容网站,Discuz!论坛等系统。
【模板】网站的美化就是家的装修。大家可以选择“柚子皮”。
这次以Wordpress为例,其它网站系统操作大同小异。备好上述材料后,准备软件Flashftp,即可开工。
2域名解析和空间绑定A.购买后的空间会有一个IP地址,在域名管理后台,把域名记录解析就到空间的IP地址上,一小时内基本生效。
B.在空间的后台,把空间和域名绑定,这样空间和域名就连接在一起了。
两步之后即可通过域名访问空间。注:不同的IDC商,域名和空间的管理后台会不一样,但功能基本一致。
3网站程序安装A.到wordpress官网,下载最新版的Wordpress。
download/
B.利用FTP工具,把Wordpress压缩包上传到空间,利用空间后台解压功能把Wordpress解压。不过你也可以在电脑上把Wordpress压缩包解压后再上传,也是一样。
C.下载wp-config-sample.php文件,重命名为:wp-config.php。打开文件,填进相关空间数据库信息,保存文件并上传。
D.打开浏览器,输入域名,即可弹出安装界面。填上相关网站信息,点击安装按钮即可完成。
安装界面
安装完成,后台登录
使用默认模板的网站前端
E.安装你喜欢的模板,例如“柚子皮”,配置网站版块信息即可完成建站。现在你只需要每天更新内容,等待百度,搜狗,360等搜索引擎收录。如果你想做关健词优化,可以找我。
-END-
11,913
73
wordpress页面判断函数总结2019.03.20
is_category()
wordpress判断
分类页面
近期文章
WordPress是什么?
WordPress调用最新,随机,热门,指定分类代码汇总
WordPress建站,FTP使用教程
WordPress自定义栏目使用教程
wordpress主题模板安装
网站标签
WordPress建站Wordpress安装wordpress空间Wordpress模板Wordpress固定链接Seo搜索菜鸟建站模板更换建站教程用户体验
准备环境首先用wordpress需要系统支持,相应的phpmysql和apache等环境。具体看下图
这里我们以win系统为例,下载安装一个wmap环境。比如appserv服务,这里__直接安装好了。
下载wordpress现在开始了,我们先去网站下载搜索一个wordpress,建议去官网下载
找到wordpress官方站点,点击下载wordpress.win版本下载zip格式,linux下载gz格式
准备安装下载好wordpress,解压放到appserver或其他php环境的www网站目录下
新建数据库首先访问phpmyadmin进入数据库,创建一个wordpress数据库。左左举例而已,你可以改成其他名字
开始安装
打开网站/wordpress界面,进入安装配置向导界面,点击【现在开始】
进入安装。如图,输入数据库用户名和密码点击设置,提交
验证通过mysql数据库权限之后,开始进入安装【现在安装】
设置网站信息接下来的界面,配置wordpress定制信息设置界面。点击【安装wordpress】
完成安装,如果需要登录,点击【登录】
跳转到登录界面,输入账号密码即可
进入到wordpress后台,如左左截图。可以进行设置你的站点啦,修改上传主题插件开始你的网站之旅吧
如何构建WordPress主题选项 Theme Options
用WordPress的Settings API是最精简的方法,定制化最高,对编程要求也高。
用Options Framework Theme是最简单的方法,不需要知道什么编程技巧,装上了就可以用,很像傻瓜照相机,所以也不能对定制化和性能有过高期望。
用主题框架,前提用这个框架构建主题,很多优秀的框架开源却不免费。
易用性和性能的平衡
如果既要追求易用性又要追求性能,需要了解一些代码又不用玩命读文档,那还有一个不错的选择,该方法来自这里。
首先下载示例文件,该文件是twentyten的Child Theme,安装方法参考如何安装WordPress主题。
激活主题后,在外观选项看下就会出现Theme Options选项卡。
这个主题选项页面主要是又文件夹下的theme-options.php控制的,打开这个文件看看如何通过修改文件来定制我们需要的主题选项界面。
如何使用theme-options.php
1.引入文件
将theme-options.php放到主题目录下,通过下面代码引入
require_once( get_template_directory().'/theme-options.php');
如果是Child Theme
require_once( get_stylesheet_directory().'/theme-options.php');
2.修改textdomain
WordPress的多语言主题必须有textdomain,这个示例文件中的textdomain是sampletheme,全文替换成自己主题的textdomain即可。
3.修改外观选项卡下的Theme Options菜单名称
13-18行的代码用于产生Theme Options名称
/**
* Load up the menu page
*/
function theme_options_add_page(){
add_theme_page( __('Theme Options','sampletheme'), __('Theme Options','sampletheme'),'edit_theme_options','theme_options','theme_options_do_page');
}
使用的函数是add_theme_page,函数定义如下,根据定义修改
add_theme_page($page_title,$menu_title,$capability,$menu_slug,$function);
$page_title控制页面title,$menu_title控制菜单名称
4.生成选项
select下拉菜单和radio单选按钮通过定义数组产生,分别是$select_options和$radio_options。
select、radio、input或checkbox等HTML结构均在函数theme_options_do_page()中输出。
5.调用主题选项中的项目
$options是一个数组,输出主题选项页面所有的选项,以安装后默认的选项为例,$options的内容如下
Array
(
[sometext]=>
[selectinput]=> 0
[sometextarea]=>
[option1]=> 0
[radioinput]=>
)
6.更改存储在wp_options表中的主题选项名称
如果你不想用sample_options作为选项名称,可以修改成自己主题的名字,假设你的主题叫greattheme,将下面的代码
function theme_options_init(){
register_setting('sample_options','sample_theme_options','theme_options_validate');
}
替换为
function theme_options_init(){
register_setting('greattheme_options','great_theme_options','theme_options_validate');
}
进行全文替换,将sample_options全文替换为greattheme_options,将some_theme_options全部替换为great_theme_options。
register_setting是WordPress Settings API中的一个函数,用来注册选项并通过回调函数(callback)输出HTML结构,函数原型如下
register_setting($option_group,$option_name,$sanitize_callback);




