您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 国内外标准规范 > wordpress常用的钩子解析
wordpress常用的钩子解析本文列出了WordPress2.1及以上版本中可用于插件开发的动作钩子(hook)。?想了解过滤器钩子和动作钩子的定义和作用?请看插件API。?想了解插件的基本编写过程?请看插件开发。?想查看过滤器钩子函数列表?请看插件API之常用过滤器。?想查找WordPress2.1之前版本的过滤器钩子和动作钩子?请看PluginAPI/Hooks2.0.x。注意:为本文添加词条或做其它改动时,请参照当前格式。添加时请说明过滤器函数适用的数据类型,如果过滤器函数接收多个参数,请在参数列表中说明。在典型请求中运行的动作钩子在WordPress2.7中,当已登录用户在默认主题打开网站主页时,WordPress会运行以下动作钩子函数:1.plugins_loaded2.sanitize_comment_cookies3.setup_theme4.auth_cookie_malformed5.auth_cookie_valid6.set_current_user7.init8.widgets_init9.parse_request10.send_headers11.pre_get_posts12.posts_selection13.wp14.template_redirect15.get_header16.wp_head17.wp_print_styles18.wp_print_scripts19.loop_start20.loop_end21.get_sidebar22.wp_meta23.get_footer24.wp_footer日志、页面、附件以及类别相关的动作钩子函数add_attachment附件文件首次加入数据库时,执行add_attachment函数。函数接收的参数:附件ID。add_category与create_category相同。clean_post_cache清除日志缓存时,执行该动作函数。函数接收的参数:日志ID。参见clean_post_cache()。create_category生成新类别时,执行该动作函数。函数接收的参数:类别ID。delete_attachment从数据库和相应链接/日志中删除某个类别后,执行该动作函数。函数接收的参数:类别ID。delete_post将要删除某篇日志或页面时,执行该动作函数。函数接收的参数:日志ID或页面ID。deleted_post删除某篇日志或页面后,执行该动作函数。函数接收的参数:日志ID或页面ID。edit_attachment数据库中附件文件被更新时执行该动作函数。函数接收的参数:附件ID。edit_category更新/编辑某个类别时(包括添加/删除日志或博客反向链接,或更新日志/博客反向链接的类别),执行该动作函数。函数接收的参数:类别ID。edit_post更新/编辑某篇日志或页面时(包括添加/更新评论,这会导致日志评论总数的更新),执行该动作函数。函数接收的参数:日志ID或页面ID。pre_post_update更新日志或页面前执行该动作函数。函数接收的参数:日志ID。private_to_publish当日志状态从private(私密)更改为published(公开)时,执行该动作函数。函数接收的参数:日志对象。(用以翻译日志状态的动作函数目前可用;参见wp_transition_post_status())。publish_page发表页面或编辑某个状态为“published”的页面时,执行该动作函数。函数接收的参数:页面ID。(警告:该动作函数不能在WordPress2.3以及更高版本中运行;但动作函数'transition_post_status'能够运行。更新信息:publish_page动作函数可在WordPress2.6及之后版本中运行。)publish_phone通过电子邮件添加新日志后,执行该动作函数。函数接收的参数:日志ID。publish_post发表日志或编辑某个状态为“published”的日志时,执行该动作函数。函数接收的参数:日志ID。save_post新建或更新一篇日志/页面时,执行该动作函数。更新可以来自导入、日志/页面编辑框、xmlrpc或邮件日志。函数接收的参数:日志ID。更新信息存入数据库后执行该动作函数。注意:日志ID可能会参照日志的修改版而不是最新发布版。wp_is_post_revision可获取日志最新版的ID。wp_insert_post与save_post相同,更新信息存入数据库后执行该动作函数。xmlrpc_public_post通过XMLRPC请求发表日志,或通过XMLRPC编辑某个状态为“published”的日志时,执行该动作函数。函数接收的参数:日志ID。评论、Ping以及引用通告相关动作钩子函数comment_closed尝试显示评论输入框而日志却设置为不允许评论时,执行该动作函数。函数接收的参数:日志ID。comment_id_not_found试图显示评论或评论输入框却未找到日志ID时,执行该动作函数。函数接收的参数:日志ID。comment_flood_trigger调用wp_die以阻止接收评论前,若检测到评论数量异常增多,执行该动作函数。函数接收的参数:上一次评论发表时间,当前评论发表时间。comment_on_draft日志为草稿状态却试图显示评论或评论输入框时,执行该动作函数。函数接收的参数:日志ID。comment_post评论刚被存入数据库时,执行此动作函数。函数接收的参数:评论ID,评论审核状态(spam,0(表示未审核),1(表示已审核))。edit_comment数据库中的评论被更新或编辑后,执行此动作函数。函数接收的参数:评论ID。delete_comment评论即将被删除前,执行此动作函数。函数接收的参数:评论ID。pingback_post日志新添加pingback后,执行此动作函数。函数接收的参数:评论ID。pre_ping执行pingback前,执行此动作函数。函数接收的参数:将要处理的日志链接数组,以及日志的“pung”设置。trackback_post日志新添加trackback后,执行此动作函数。函数接收的参数:评论ID。wp_blacklist_check执行该动作函数以判断评论是否应被禁止。函数接收的参数:评论者的名称、电子邮件、URL、评论内容、IP地址、用户代理(浏览器)。该函数可执行wp_die以拒绝评论,也可以修改某个参数以使评论中可包含用户在WordPress选项中设置的黑名单关键词。wp_set_comment_status评论状态发生改变时,执行此动作函数。函数接收的参数:评论ID,表明新状态的状态字符串(delete,approve,spam,hold)。反向链接动作钩子函数add_link新反向链接首次加入数据库时,执行此动作函数。函数接收的参数:链接ID。delete_link删除反向链接时,执行此动作函数。函数接收的参数:链接ID。edit_link编辑反向链接时,执行此动作函数。函数接收的参数:链接ID。Feed动作钩子函数atom_entry在atom订阅中,显示某篇博客日志信息后(但关闭该日志标签前),执行此动作函数。atom_head在atom订阅中,显示所订阅的某个博客信息后,还未显示该博客第一篇日志前,执行此动作函数。atom_ns为atom订阅的根XML元素执行此动作函数(以添加命名空间)。commentrss2_item在评论订阅中,显示某条评论信息后(但关闭该评论的标签前),执行此动作函数。函数接收的参数:评论ID,日志ID。do_feed_(feed)生成订阅信息时执行此动作函数,其中的订阅指的是订阅类型(rss2,atom,rdf等)。显示订阅信息所用优先级应低于10。函数接收的参数:true(评论订阅),或false(日志订阅)。rdf_header在rdf订阅中,显示所订阅的博客信息后,还未显示该博客第一篇日志前,执行此动作函数。rdf_item在RDF订阅中,显示某篇博客日志信息后(但关闭该日志标签前),执行此动作函数。rdf_ns为RDF订阅的根XML元素执行此动作函数(以添加命名空间)。rss_head在RSS订阅中,显示所订阅的博客信息后,还未显示该博客第一篇日志前,执行此动作函数。rss_item在RSS订阅中,显示某篇博客日志信息后(但关闭该日志标签前),执行此动作函数。rss2_head在RSS2订阅中,显示所订阅的博客信息后,还未显示该博客第一篇日志前,执行此动作函数。rss2_item在RSS2订阅中,显示某篇博客日志信息后(但关闭该日志标签前),执行此动作函数。rss2_ns为RSS2订阅的根XML元素执行此动作函数(以添加命名空间)。模板相关动作钩子函数comment_form在标准WordPress主题中执行此动作函数以插入评论表单。函数接收的参数:日志ID。do_robots模板文件选择器认为这是一个来自robots.txt的请求时,执行该动作函数。do_rebotstxt在do_robots函数为robots.txt文件显示“Disallow”链接前,执行此动作函数。get_footer加载footer.php模板文件前,模板调用get_footer函数时执行此动作函数。get_header加载header.php模板文件前,模板调用get_header函数时执行此动作函数。switch_theme更改博客主题时执行此动作函数。函数接收的参数:新主题的名称。template_redirect决定用以显示所请求页面的模板文件前执行此动作函数,以便插件改写对模板文件的选择。示例(仅供参考,无实际用途):将所有请求重定向到当前主题目录下的all.php模板文件。functionall_on_one(){include(TEMPLATEPATH.'/all.php');exit;}add_action('template_redirect','all_on_one');wp_footer模板在博客页面的最下方附近调用wp_footer函数时执行该动作函数。wp_head模板调用wp_head函数时执行动作函数wp_head。wp_head通常被放在页面模板最上方head和/head之间。该动作函数不接受参数。wp_meta模板文件sidebar.php调用wp_meta函数以允许插件在侧边栏加入内容时,执行此动作函数。wp_print_scriptsWordPress将已记录的JavaScript脚本输入页面的页眉部分前,执行此动作函数。管理界面相关的动作钩子函数activate_(插件文件名)首次激活某插件时执行此动作函数。参见常用函数-register_activation_hook。activity_box_end在控制板界面上的活动框末端执行该动作函数。add_category_form_pre添加分类的文本框尚未显示在管理菜单的界面上时,执行此动作函数。admin_head在控制板的HTML版块head中执行此动作函数。admin_head-(page_hook)或admin_head-(plguin_page)在插件所生成页面的控制板的HTML版块head中执行此动作函数。admin_init加载管理界面前执行该动作函数。参见wp-admin/admin.php,wp-admin/admin-post.php,以及wp-admin/admin-ajax.php。admin_footer在主标签中的控制板末端执行该动作函数。admin_print_scripts在HTML的信息头部分执行此动作函数,以使插件将JavaScript脚本添加到所有管理界面。admin_print_styles在HTML的信息头部分执行此动作函数,以使插件将CSS或样式表单添加到所有管理界面。admin_print_scripts-(
本文标题:wordpress常用的钩子解析
链接地址:https://www.777doc.com/doc-2867825 .html