WordPress代码和分析-从主题开始
文件/wp-admin/theme-install.php
1、wp_die(__())函数分析
if ( ! current_user_can('install_themes') ) //判断是否有安装主题的权限 wp_die(__('You do not have sufficient permissions to install themes on this site.'));
wp_die函数在“wp-includes/function.php”文件内,作用是 终止PHP代码的执行并显示HTML格式的消息提示。这个方法是用来代替PHP函数die,区别在于这个方法支持HTML代码。die在PHP中是退出当前程序并输出一段消息。
“__(”是个什么函数呢?这个函数在“load-script.php”、“load-style.php”、”l10.php”等文件中出现定义了。在”load-script.php”、”load-style.php”中,function __() {}都是定义的空函数。在theme-install.php文件中是引用的“l10.php”文件的“__()”函数的。他们的文件包含关系如下:
在l10.php中,“__()”函数是这样定义的:
function __( $text, $domain = 'default' ) { retu translate( $text, $domain );}
其中translate是一个应用在多语言环境下的翻译函数。(猜测的)
WordePress对很多PHP系统自带的函数进行了包装,利用代理模式来解决PHP版本升级和PHP内置函数改变所带来的影响。
2、wp_reset_vars( array('tab', 'paged') )分析
wp_reset_vars是一个重新设置全局变量的函数,具体代码如下:
//wp-admin/includes/misc.php
function wp_reset_vars( $vars ) { for ( $i=0; $i<count( $vars ); $i += 1 ) { $var = $vars[$i]; global $$var; if ( empty( $_POST[$var] ) ) { if ( empty( $_GET[$var] ) ) $$var = ''; else $$var = $_GET[$var]; } else { $$var = $_POST[$var]; } }}
在theme-install.php中执行完wp_reset_vars( array('tab', 'paged') )后,如果$_POST[“tab”]或者$_GET[“tab”]有值得话,我们将会得到一个以$_POST[“tab”]或者$_GET[“tab”]值为变量的全局变量,如果没有值的话,将会清楚全局变量。
在这个函数中,有一个global $$var这个定义比较费解。我写了个简单的测试代码搞明白了是什么意思:
$var="abc";$$var="12";echo($$abc);
这段代码输出的结果就是12。
WordPress代码非常复杂,下次继续分析wp_enqueue_style和wp_enqueue_script的作用。
作者:TransTown
来源链接:https://www.cnblogs.com/TransTown/archive/2011/04/18/2020079.html
版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。
2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。