WordPress 常用的行动钩子

  WordPress 有很多行动钩子,有一些是很常用的。

plugins_loaded

  对插件开拓者来说,plugins_loaded 行动钩子也许是最重要的行动钩子了。它在大大都 WordPress 文件加载完成之后,并在pluggable 函数和 WordPress 开始执行任何对象之前触发。在大大都的插件中,在这个钩子触发之前,不该该执行其他的代码。plugins_loaded 在所有用户启用的插件都被 WordPress 加载之后执行。这也是在加载进程中插件开拓这最早能用到的钩子。

  WordPress 的插件应该在这个钩子中执行安装。其他行动也应该添加到这个钩子的回调函数中。

  下面的例子中,利用前面部门建设的 boj_example_footer_message 行动。要把它添加到钩到 plugins_loaded 钩子中的安装行动中,而不是单独挪用它。

<?php
add_action( 'plugins_loaded', 'boj_footer_message_plugin_setup' );
function boj_footer_message_plugin_setup() {
/* 添加 footer 信息行动 */
add_action( 'wp_footer', 'boj_example_footer_message', 100 );
}

function boj_example_footer_message() {
echo '基于 <a href=http://down.chinaz.com/"http:/wordpress.org" >WordPress </a>架设。';
}
?>

  建设一个安装函数并把它钩到 plugins_loaded 中。这样做就可以确保不会由于特定的 WordPress 函数还没有加载而触发错误。

init

  init 钩子在大大都的 WordPress 都成立之后。WordPress 同样添加很多内部的成果到这个钩子中,譬喻 post types 和 taxonomies 的厨厕以及默认 widgets 的初始化。

  因为这时险些 WordPress 中的所有内容都停当了,当 WordPress 的所有信息都可用时,你的插件利用这个钩子差不多可以做任何需要的工作了。

  下面的例子中,为用户添加了给 pages 写摘要的成果。这应该在 init 中执行,因为 “page” post type 在这时利用 add_post_type_support() 函数来建设。( 详见 Part-11, “扩展 posts”)

<?php
add_action( 'init', 'boj_add_excerpts_to_pages' );

function boj_add_excerpts_to_pages() {
add_post_type_support( 'page', array( 'excerpt' ) );
}
?>

admin_menu

  admin_menu 钩子在打点员页面加载的时候挪用。无论何时你的插件直接在打点页面下事情,你都要用这个钩子来执行你的代码。

  下面的例子添加了一个内容是 BOJ Settings 的 sub-menu 项到 WordPress 打点页面的配置菜单。(详见:Part-7,”插件配置”)

<?php
add_action( 'admin_menu', 'boj_admin_settings_page' );

function boj_admin_settings_page() {
add_options_page(
'BOJ Settings',
'BOJ Settings',
'manage_options',
'boj_admin_settings',
'boj_admin_settings_page'
);
}
?>

template_redirect

  template_redirect 行动钩子很有用,因为它是 WordPress 知道用户正在欣赏的页面的要害。它在特定的页面选择 theme template 之前执行。在只在网站的前端触发,并不在打点员页面触发。

  当你需要为特定的页面加载代码的时候,这个钩子很有用。

  下面的例子中,仅仅为 singular post 加载一个样式表文件。

<?php
add_action( 'template_redirect', 'boj_singular_post_css' );

function boj_singular_post_css() {
if( is_singular( 'post' ) ) {
wp_enqueue_style (
'boj-singular-post',
'boj-example.css',
false,
0.1,
'screen'
);
}
}
?>

wp_head

  在网站的前端,WordPress 的模板挪用 wp_head() 函数,会触发 wp_head 钩子。插件利用这个钩子在 <head> 和 </head> 标签之间添加 HTML。

  下面的例子中在前端添加一个 meta description。

<?php
add_action( 'wp_head', 'boj_front_page_meta_description' );

function boj_front_page_meta_description() {
/* 获得站点描写 */
$description = esc_attr( get_bloginfo( 'description' ) );
/* 假如 description 配置了,显示 meta 元素 */
if ( !empty( $description ) )
echo '<meta name="description" content="'. $description. '"/>';
}
?>

  有些插件错误的利用了 wp_head 行动钩子来添加 JavaScript 代码,实际上应该利用 wp_enqueue_script() 函数的。( 详见:Part-12,”JavaScript 和 AJAX “)。独一一种利用这个钩子来添加 JavaScript 的景象是当 JavaScript 代码不在一个单独的文件中时。

Wordpress下载:

WordPress v3.5.2 简体中文版下载

WordPress 常用的动作钩子

界面预览

WordPress v4.4.2 英文版下载

WordPress 常用的动作钩子

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/10279.html