总结
豆包 AI 助手文章总结

web - wordpress blog系统的class.wp-dependencies.php 文件 do_items 执行问题

php中文网
发布: 2016-06-06 20:10:37
原创
1680人浏览过

研究wordpress 碰到js加载跟着代码走读到wp-includes/class.wp-dependencies.php文件的do_items
发现该函数调用$this->do_item( $handle, $group ) 后打印输出js脚本

调试代码如下

` echo "{"; ob_flush();
            if ($this->do_item( $handle, $group )){
                echo "if 语句内执";ob_flush();
                $this->done[] = $handle;
            }
            echo "}";`
登录后复制
登录后复制

我在do_item函数添加和get_data 添加代码表示被调用

public function get_data( $handle, $key ) {
        echo "\n",__FUNCTION__,"\n"; 
        if ( !isset( $this->registered[$handle] ) )
            return false;
        if ( !isset( $this->registered[$handle]->extra[$key] ) )
            return false;
        return $this->registered[$handle]->extra[$key];
    }

public function do_item($handle) {
        echo "\n",__FUNCTION__,"\n";
        $temp=isset($this->registered[$handle]);
        echo "end function do_item";
        return $temp;
    }
登录后复制
登录后复制

运行结构如下

{
do_item
end function do_item
get_data

get_data

get_data
<script type='text/javascript' src='http://www.hweijie.com/wp-content/themes/dux/js/libs/bootstrap.min.js?ver=1.4'></script>
if 语句内执}{
do_item
end function do_item
get_data

get_data

get_data
<script type='text/javascript' src='http://www.hweijie.com/wp-content/themes/dux/js/loader.js?ver=1.4'></script>
if 语句内执}{
do_item
end function do_item
get_data

get_data

get_data
<script type='text/javascript' src='http://www.hweijie.com/wp-includes/js/wp-embed.min.js?ver=4.5.1'></script>
if 语句内执}
登录后复制
登录后复制

问题是
get_data 函数是如何被调用的,而js脚本输出有时那个函数被输出的

立即学习PHP免费学习笔记(深入)”;

以下是我提供的代码环境
http://pan.baidu.com/s/1hrZaBsC
这是一个干净的wordpress 模板 dux. 也可以自己下载,安装到本地的wordpress 模板目录里面即可......

回复内容:

研究wordpress 碰到js加载跟着代码走读到wp-includes/class.wp-dependencies.php文件的do_items
发现该函数调用$this->do_item( $handle, $group ) 后打印输出js脚本

调试代码如下

` echo "{"; ob_flush();
            if ($this->do_item( $handle, $group )){
                echo "if 语句内执";ob_flush();
                $this->done[] = $handle;
            }
            echo "}";`
登录后复制
登录后复制

我在do_item函数添加和get_data 添加代码表示被调用

public function get_data( $handle, $key ) {
        echo "\n",__FUNCTION__,"\n"; 
        if ( !isset( $this->registered[$handle] ) )
            return false;
        if ( !isset( $this->registered[$handle]->extra[$key] ) )
            return false;
        return $this->registered[$handle]->extra[$key];
    }

public function do_item($handle) {
        echo "\n",__FUNCTION__,"\n";
        $temp=isset($this->registered[$handle]);
        echo "end function do_item";
        return $temp;
    }
登录后复制
登录后复制

运行结构如下

{
do_item
end function do_item
get_data

get_data

get_data
<script type='text/javascript' src='http://www.hweijie.com/wp-content/themes/dux/js/libs/bootstrap.min.js?ver=1.4'></script>
if 语句内执}{
do_item
end function do_item
get_data

get_data

get_data
<script type='text/javascript' src='http://www.hweijie.com/wp-content/themes/dux/js/loader.js?ver=1.4'></script>
if 语句内执}{
do_item
end function do_item
get_data

get_data

get_data
<script type='text/javascript' src='http://www.hweijie.com/wp-includes/js/wp-embed.min.js?ver=4.5.1'></script>
if 语句内执}
登录后复制
登录后复制

问题是
get_data 函数是如何被调用的,而js脚本输出有时那个函数被输出的

立即学习PHP免费学习笔记(深入)”;

以下是我提供的代码环境
http://pan.baidu.com/s/1hrZaBsC
这是一个干净的wordpress 模板 dux. 也可以自己下载,安装到本地的wordpress 模板目录里面即可......

唉,你怎么就没试试看echo get_class($this)呢?
class WP_Scripts extends WP_Dependencies
class WP_Styles extends WP_Dependencies
所以,你确定你运行的是 new WP_Dependencies 而不是 new WP_Scripts或者new WP_Styles?

WPS零基础入门到精通全套教程!
WPS零基础入门到精通全套教程!

全网最新最细最实用WPS零基础入门到精通全套教程!带你真正掌握WPS办公! 内含Excel基础操作、函数设计、数据透视表等

下载
相关标签:
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
豆包 AI 助手文章总结
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号