我正在查看我的wordpress文件和代码。有一个名为functions.php
的文件。
但是如何在每个文件中调用函数而不包括functions.php
?
我在学校里了解到,当你想要使用其他页面中的内容时,你必须包含文件。
我在互联网上找不到有用的东西。有人可以向我解释一下吗?
答案 0 :(得分:0)
每次wordpress网站提供页面时,都会加载活动主题的functions.php
文件。
因此,您添加的任何功能都将被加载并可在模板文件中使用。
假设您的functions.php文件如下所示:
<?php
function my_example() {
echo "<h1>My example</h1>";
}
然后,在header.php
中,您可以像这样调用该函数:
<html>
<head></head>
<body>
<?php my_example(); ?>
</body>
</html>
您无需专门include
(也不include_once
)functions.php
文件,以便使用刚才声明的功能。
答案 1 :(得分:0)
查看@rdlowrey对How Wordpress Generates HTML for Blog Posts
的回答Wordpress所做的 - 实际上许多流行的MVC框架 - 使用apache .htaccess文件将所有流量路由到前端控制器[wiki]脚本。
因此,当您访问WP安装所服务的任何页面时,您可以使用某些功能,因为它们都通过相同的“起始点”。
要开始跟踪该路径,请在根目录中打开index.php
,然后看到:
/** Loads the WordPress Environment and Template */
require( dirname( __FILE__ ) . '/wp-blog-header.php' );
从那里,看看wp-blog-header.php
。它正在加载wp-load.php
。如果没有wp-config.php
,则会提示您安装。如果您的目录中有,请注意它需要wp-settings.php
。
在设置文件中,您将明确看到主题的functions.php
文件在第318行(至少在WP 3.8.1中)添加到混合中的位置
// Load the functions for the active theme, for both parent and child theme if applicable.
if ( ! defined( 'WP_INSTALLING' ) || 'wp-activate.php' === $pagenow ) {
if ( TEMPLATEPATH !== STYLESHEETPATH && file_exists( STYLESHEETPATH . '/functions.php' ) )
include( STYLESHEETPATH . '/functions.php' );
if ( file_exists( TEMPLATEPATH . '/functions.php' ) )
include( TEMPLATEPATH . '/functions.php' );
}