5ucms论坛
标题:
wordpress插件开发教程02 钩子的操作
[打印本页]
作者:
admin
时间:
2021-5-28 22:32
标题:
wordpress插件开发教程02 钩子的操作
一、认识钩子
添加动作:add_action 与 执行动作:do_action
在上一节,我们学习到了在数据库option表里插入、删除数据,这一节我们讲把这个插入的值显示出来
//打印option表里的qss_copyright_text字段对应的内容
function qss_copyright_insert(){
echo get_option("qss_copyright_text");
}
//通过钩子执行上方函数
add_action("wp_footer","qss_copyright_insert");
复制代码
这个钩子的方法在/wp-includes/general-template.php里
通过模板fooer.php中的 do_action('wp_footer')起作用 所有add到这个钩子上的都执行 所以你可以再复制改改,执行另一条类似的挂载到底部去
//也可以直接echo打印内容哦
function qss_copyright_insert2(){
echo '我是第二次执行啦';
}
//通过钩子执行上方函数
add_action("wp_footer","qss_copyright_insert2");
复制代码
作者:
admin
时间:
2021-5-28 22:49
常用的钩子有
wp_head 头部head区插入,通过模板中的wp_head()
wp_footer 底部插入,在body区底部了
WP有上千个钩子,要学会查阅:
https://codex.wordpress.org/Plugin_API/Action_Reference
红色的为有更新成其他的或弃用
作者:
admin
时间:
2021-5-28 22:51
二、带参数的钩子
add_action(要挂的钩子,要执行在这个钩子下的函数,执行先后顺序[不写则按你写代码的前后顺序来]大的靠前,要执行的这个函数可以传入的最大参数数量);
function save_post_meta($post_id,$post){
update_post_meta($post_id,"save-time","更新时间:".date("Y-m-d h:i:s"));//更新文章自定义栏目
}
do_action( 'save_post', 'save_post_meta',10,2);
复制代码
作者:
admin
时间:
2021-5-29 07:22
三、常用的动作实用案例
1、在加载过程中的例子
//给页面管理添加摘要功能
function qss_add_excerpts_to_pages(){
add_post_type_support('page',array('excerpt'));
}
add_action ('init','qss_add_excerpts_to_pages');
复制代码
wp_head()函数触发,一般用于在<head>标签内输出内容
WP页面判断函数大全:
http://bbs.5ucms.com/thread-834-1-1.html
//只有首页额外输出一段描述
function qss_wp_head(){
if(is_home){//判断是否为首页
?><meta name="description" content="<? bloginfo('description'); ?>" /> <?
}
}
add_action ('wp_head','qss_wp_head');
复制代码
wp_enqueue_scripts()函数
,添加head区内的js、css文件
plugins_url()函数指当前插件所在目录
这里可以加一些判断页面的if结合
function qss_addcss()
wp_enqueue_style('qss-add-css',plugins_url('css/qss_test.css'),__FILE__), false );
}
function qss_addjs()
wp_enqueue_style('qss-add-js',plugins_url('css/qss_test.js'),__FILE__), false );
}
add_action ('wp_enqueue_scripts','qss_addcss');
add_action ('wp_enqueue_scripts','qss_addjs');
复制代码
欢迎光临 5ucms论坛 (http://bbs.5ucms.com/)
Powered by Discuz! X3.2