WordPress如何知道它的功能?
特别在主题php文件中,比如说index.php。大多数主题的index.php文件中的第一件事是调用get_header(),这肯定不是在index.php中定义的,所以它如何知道该函数?WordPress如何知道它的功能?
我对php并不是很熟悉,但是从我刚刚阅读的内容中可以看出,include和require关键字的工作方式与C中包含的
import in Java or
差不多相同,我理解并且有意义。然而,在这个特定的index.php文件中这些关键字的唯一用法是包含一个不包含get_header()定义的文件,它也没有任何包含或需要它自己的东西(尽管它调用了一些更多的函数没有权利知道,很像索引),所以很清楚,现在它是如何知道这个功能的。
无论如何,我只是希望从wordpress中为我自己删除一些'魔术'。提前致谢!
主题index.php文件不是唯一的处理的主文件,一个驻留在你的WordPress安装的根目录。它调用几个文件来设置环境,然后加载模板。您可能需要查看wp-content/plugins
目录,或许从globals.php
文件开始调整一些魔法。
另外wp-includes
目录包含有趣的文件,get_header()
函数在该目录中的general-template.php
中定义。
最有可能的是,index.php被包含在另一个文件中,该文件或者定义了get_header()函数,或者更可能包含另一个包含php文件,后者又定义了get_header()函数。
你必须明白的是,PHP 包括和需要函数的行为就像一个在线包括。它简单地将包含文件视为原始脚本的一部分..一个大的连接脚本(所以不是真的像在Java中使用导入)
您可能希望从.htaccess文件开始,它会告诉您哪个.php文件被分配来处理请求。根据你在你的问题中所说的内容,它可能不是index.php。当你发现最上面的PHP脚本,你可以从那里您的工作方式与包括 S和需要 ..
哎呦的load_template
函数调用,你是它不是类似于Java导入正确的,感谢指出了这一点! –
Trajanus
2009-12-03 19:42:49
,并在Java中声明你的文件的顶部导入。在PHP中,你可以设置包括几乎任何你想要的。
所以这是有效的:
<?php
// define some functions
?>
<html>
<head>
<?php
include('head.php');
?>
</head>
<body></body></html>
有可能是这些get_header()
方法某处声明包含index.php页面之前。
如果你想离开了<?php get_header(); ?>
那么就不会有问题
具体在主题php文件,如说index.php。大多数主题的index.php文件中的第一件事是调用get_header(),这肯定不是在index.php中定义的,所以它如何知道该函数?
主题的index.php
文件从不自行执行。 所有请求WordPress安装通过WordPress的主要index.php
文件。
每个主题中的index.php并不是直接调用,而是由其他文件包含在Wordpress中。
get_header
实际上在wp-includes/general-template.php
中定义。
模板文件被加载由require_once
功能wp-includes/theme.php
谢谢!正是我在寻找的那种答案:) – Trajanus 2009-12-03 19:42:04