为什么在主题的unctions.php中包含文件不起作用?

时间:2013-07-14 作者:trusktr

例如,如果我在主题函数中编写一些代码(例如,添加自定义帖子类型或其他内容)。php,它工作得很好。如果我将其移动到新文件,则include() 我的主题函数中的文件。php文件,它不再工作(但使用error_log() 仍然有效。

e、 g。

下面是函数。php:

<?php
// ###### functions.php ######
error_log("fu_debug: Including the post type.");

add_action(\'init\', \'fu_create_project_post_type\');
function fu_create_project_post_type() {
    error_log("fu_debug: create project post type");

    register_post_type( \'fu_project\',
        array(
            \'labels\' => array(
                \'name\' => __( \'Projects\' ),
                \'singular_name\' => __( \'Project\' )
            ),
            \'public\' => true,
            \'has_archive\' => true,
            \'rewrite\' => array(\'slug\' => \'projects\'),
        )
    );
}
?>
这很好用。现在,如果我改变函数。php对此:

<?php
// ###### functions.php ######
include "newfile.php";
?>
并将代码放入新文件中。php如下所示:

<?php
// ###### newfile.php ######
error_log("fu_debug: Including the post type.");

add_action(\'init\', \'fu_create_project_post_type\');
function fu_create_project_post_type() {
    error_log("fu_debug: create project post type");

    register_post_type( \'fu_project\',
        array(
            \'labels\' => array(
                \'name\' => __( \'Projects\' ),
                \'singular_name\' => __( \'Project\' )
            ),
            \'public\' => true,
            \'has_archive\' => true,
            \'rewrite\' => array(\'slug\' => \'projects\'),
        )
    );
}
?>
代码不再工作,但error\\u log()消息仍显示在日志中。

为什么错误消息仍然有效,而wordpress代码却无效?

2 个回复
SO网友:Chip Bennett

在中包含文件时functions.php, 您需要引用正确的文件路径,使用get_template_directory():

include( get_template_directory() . \'/newfile.php\' );

SO网友:B. Shea

这将指向父主题:
require_once( get_template_directory() . \'/include/myscript.php\' );

如果使用子主题(你应该!),使用此选项:
require_once( get_stylesheet_directory() . \'/include/myscript.php\' );

结束

相关推荐

Wp-includes/unctions.php中出现意外的“$mm”(T_Variable)

我有几个Wordpress网站,但都已关闭:服务器尝试满足请求时遇到意外情况。错误代码:500当我查看apache日志时,会出现错误(针对不同的站点):[Mon Apr 15 04:00:28 2013] [error] [client ...] PHP Parse error: syntax error, unexpected \'$mm\' (T_VARIABLE) in /var/www/SITEA/html/wp-includes/functions.php on line 192, refer