WordPress主题函数的实现原理?
求解:WordPress主题中函数的实现原理是什么?
比如主题目录wp-content/themes/twentyfifteen/
下的index.php
中
<?php get_header(); ?>
问题1:其中的get_header()
函数哪来?
问题2:get_header()
函数为什么会调用header.php
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这个机制要说起来,可以复杂,可以简单。
程序语言是一个逻辑体现的工具,有顺序,判断的过程,绕来绕去绕来绕去,并没有啥神奇的地方,神奇的是人的脑洞。
我来点化你。虽然,我已经不用PHP四年多了。。。
是外层的php文件调用
wp-content/themes/twentyfifteen
中的index.php
,get_header()
是在外层定义的。建议一层一层往里分析。
如最外层
index.php
是入口加载了
wp-blog-header.php
,我们在看
wp-blog-header.php
:检测头部是否加载
!isset($wp_did_header)
,没加载则先将wp的库给加进来:require_once( dirname(__FILE__) . '/wp-load.php' );
库
wp-load.php
中的文件内容是:我们一层层往下看,最后发现:
原来
get_header
大兄弟在wp-includes/general-template.php
我们看看定义
需传入$name,但一般没有传,有两个函数搞清楚,你就清楚了。
这个
$templates[]
你没传入name
就是header.php
了,所以会调用主题下的这个文件,怎么调用呢?
我们要看:
我们来看看
wp-includes/template.php
下的定位模板位置有四个判断!关键在于这些
STYLESHEETPATH
,恩 。。。那么,位置到底在哪里,请看
wp-includes/default-constants.php
:少年,我只能帮你这么多。
WP还是挺简单的,直接原生的,也没有啥类机制,很古老。
程序加载是从一个入口进去,然后所有
包含的函数,变量
都会加载在内存。你进根目录的index.php
,会最后加载到主题下的index.php
PHP is The best langauge in the world!