您的位置:首页 > 其它

wordpress基础插件开发3-add_action()案例研究

2018-03-16 14:47 239 查看
紧接着wordpress插件开发的学习,真的很枯燥和乏味,但还是要坚持。


案例1:在新建文章时,在后台的新建文章页面添加摘要功能:
add_action('init','add_post_excerpt_box');

//在页面初始化init(新建) 执行add_post_expert_box方法
function add_post_excerpt_box()
{
add_post_type_support('page',array('excerpt','trackbacks'));
}


案例2:页面加载实现加载自定义css和js文件
//在加载wp_head的同时 也会加载 wp_enqueue_script 和 wp_enqueue_style 这个两个钩子
add_action('wp_head','add_custom_script_style',2);

function add_custom_script_style()
{
wp_enqueue_script('my-js',plugins_url('js/my_test.js',__FILE__));
wp_enqueue_style('my-style',plugins_url('css/my_test.css',__FILE__));
}

效果展示:



案例3:新建文章给每一篇文章添加自定义字段 save-time-time
add_action('save_post','option_post_save',10,2);

function option_post_save($post_id,$post)
{
update_post_meta($post_id,'save-time-time','更新时间:'.date('Y-m-d H:i:sa'));
}

效果展示:



案例4:当提交新评论的时候,更新提交的评论内容
add_action('wp_insert_comment','custom_insert_comment_option',10,2);

function custom_insert_comment_option($comment_id,$comment_object)
{

//得到评论的数量对象
$comments_count = wp_count_comments($comment_object->comment_post_ID);

//$comments_count需要接收一个数组
$commentdata = array();
$commentdata['comment_ID'] = $comment_id;
$commentdata['comment_content'] = '第'.$comments_count->total_comments.'条评论:'.$comment_object->comment_content;

wp_update_comment($commentdata);
}


效果展示:



案例5:移除钩子 如果不填写优先级标识符priority 则清空当前, 如果填写则清空当前优先级下的该动作下挂载的函数 
remove_action('wp_insert_comment','custom_insert_comment_option');
remove_all_actions('wp_insert_comment');

* 总结:这几个案例主要是简略的概括了add_action()和系统自带的钩子的结合使用,包括wordpress内容内容系统配置相关的函数的使用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: