wordpress高级教程:add_action动作及add_filter过滤器、使用 wp_footer()是报错Invalid argument supplied解决

一、add_action动作

1、运行dz动作,把所有挂载到这个动作的函数都执行一次

  1.  
    <?
  2.  
    //定义sh 说话函数
  3.  
    function sh(){
  4.  
    echo '说话<br/>';
  5.  
    }
  6.  
     
  7.  
    //将sh 说话函数 挂载到 dz 动作上
  8.  
    add_action('dz','sh');
  9.  
     
  10.  
    //运行dz动作,把所有挂载到这个动作的函数都执行一次
  11.  
    do_action('dz');
  12.  
    ?>

2、add_action 优先级(值1 -10)

  1.  
    <?
  2.  
    //定义sh 说话函数
  3.  
    function sh(){
  4.  
    echo '说话<br/>';
  5.  
    }
  6.  
    //定义zl 走路函数
  7.  
    function zl(){
  8.  
    echo '走路<br/>';
  9.  
    }
  10.  
     
  11.  
    //将sh 说话函数 挂载到 dz 动作上,优先级为2
  12.  
    add_action('dz','sh',2);
  13.  
    //将zl 走路函数 挂载到 dz 动作上,优先级为1
  14.  
    add_action('dz','zl',1);
  15.  
     
  16.  
    //运行dz动作,把所有挂载到这个动作的函数都执行一次
  17.  
    do_action('dz');
  18.  
    ?>

效果:

3、wordpress 内置动作

WordPress 插件 API/Action Reference文档

https://codex.wordpress.org/Plugin_API/Action_Referencehttps://codex.wordpress.org/Plugin_API/Action_Reference

示例:返回顶部插件

(1)参考官方文档

 Template Actions

 (2)页面调用wp_footer()函数

 (3)wp_footer() 函数在/wp-includes/general-template.php文件

 (4) /wp-content/plugins 文件夹下  cj.php

  1.  
    <?php
  2.  
    /*
  3.  
    Plugin Name: 插件A
  4.  
    Plugin URI: http://www.jxzrj.com/
  5.  
    Description: 返回页面顶部
  6.  
    Author: 作者
  7.  
    Version: 0.0.1
  8.  
    Author URI: http://www.jxzrj.com/
  9.  
    */
  10.  
    function auto_top(){
  11.  
    echo '<a href="#"><div id="tip" style="width: 40px;
  12.  
    height: 40px;
  13.  
    border: 1px solid #FF0000;
  14.  
    line-height: 40px;
  15.  
    text-align: center;
  16.  
    position: fixed;
  17.  
    right: 10px;bottom:10px">顶部</div></a>';
  18.  
     
  19.  
    }
  20.  
    add_action('wp_footer','auto_top');
  21.  
    ?>

(5)启动插件,效果

 

 

二、add_filter过滤器

1、过滤器示例

  1.  
    <?
  2.  
     
  3.  
    //缀加函数
  4.  
    function zj($text){
  5.  
    return $text.".....";
  6.  
    }
  7.  
     
  8.  
    //将 zj 函数 挂载到 glq 过滤器
  9.  
    add_filter('glq','zj');
  10.  
     
  11.  
     
  12.  
    //创建glq过滤器,传递过滤的字符串“更多内容”
  13.  
    echo apply_filters('glq','更多内容');
  14.  
     
  15.  
     
  16.  
    ?>

 2、过滤器 优先级(值越小,越先执行)

  1.  
    <?
  2.  
     
  3.  
    //缀加函数
  4.  
    function zj($text){
  5.  
    return $text.".....";
  6.  
    }
  7.  
    function zj2($text){
  8.  
    return $text."!!!";
  9.  
    }
  10.  
     
  11.  
    //将 zj 函数 挂载到 glq 过滤器
  12.  
    add_filter('glq','zj',2);
  13.  
    add_filter('glq','zj2',1);
  14.  
     
  15.  
     
  16.  
    //创建glq过滤器,传递过滤的字符串“更多内容”
  17.  
    echo apply_filters('glq','更多内容');
  18.  
     
  19.  
     
  20.  
    ?>

 3、wordpress 内置过滤器

WordPress 插件 API/Filter Reference文档

https://codex.wordpress.org/Plugin_API/Filter_Referencehttps://codex.wordpress.org/Plugin_API/Filter_Reference

Database Reads

示例:内容前添加字符串

(1)模板中使用 the_content()

 (2)the_content() 函数位于 /wp-includes/post-template.php

(3) /wp-content/plugins/ 文件夹

  1.  
    function add_lt($content){
  2.  
    return "lt 说:".$content;
  3.  
    }
  4.  
    // 将 add_lt 挂载到 the_content 过滤器上
  5.  
    add_filter('the_content','add_lt');

 (4)启动插件

 

 

 三、使用 wp_footer()是报错Invalid argument supplied解决

错误提示:

Warning: Invalid argument supplied for foreach() in /www/wwwroot/hbjxzzn/wp-includes/script-loader.php on line 2781

解决方法:

 

 
posted @ 2022-09-16 10:50  快乐的在一起  阅读(344)  评论(0编辑  收藏  举报