• wordpress CMS主题:ssmay主题wordpress CMS主题:ssmay主题
  • 首页 > wordpress主题常用函数 > 几个常用wordpress主题的动作钩子及使用

    几个常用wordpress主题的动作钩子及使用

    作者: 分类:wordpress主题常用函数 点击: 2,079 次
    wordpress CMS主题:ssmay主题

      WordPress 有许多动作钩子,有一些是很常用的。使用这些wordpress钩子,可以为wordpress主题的功能带来多种多样的提升。wordpress常用的动作钩子有哪些?以及使用这些wordpress动作钩子?下面,就随高时银博客一起来看看吧。

      wordpress主题的常用动作钩子1: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://wordpress.org" >WordPress </a>架设。';
      }
      ?>

       

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

      =====================================================================================

      wordpress主题的常用动作钩子2: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' ) );
      }
      ?>

      ======================================================================================

      wordpress主题的常用动作钩子3: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'
      );
      }
      ?>

      ====================================================================================

      wordpress主题的常用动作钩子4: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'
      );
      }
      }
      ?>

      ===============================================================================

      wordpress主题的常用动作钩子2: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 代码不在一个单独的文件中时。



      QQ二维码

    文章作者:高时银博客
    本文地址:http://wanlimm.com/77201705235298.html
    版权所有 © 转载时必须以链接形式注明作者和原始出处!

    上一篇:
    下一篇:
    wordpress CMS主题:ssmay主题

    或许你会感兴趣的文章:

    发表评论

    电子邮件地址不会被公开。 必填项已用*标注

    This site uses Akismet to reduce spam. Learn how your comment data is processed.