为什么我的FILE_EXIST检查失败?

时间:2019-01-18 作者:user3135691

所以基本上,我要检查用户是否想在其主题中覆盖我的插件模板。

我有一个带有自定义帖子类型“links”的插件。根据WP模板系统,我的归档文件是“归档链接”。php’。

So, why does my check for the file \'archive-links.php\' in the template folder always return false?

if(is_post_type_archive(\'links\')) {

    $file = get_template_directory_uri() . \'/archive-links.php\';

    if(file_exists($file)) {
        // echo(\'working\');
        // template overwrite
        return get_template_directory_uri() . \'/archive-links.php\';
    } else {
        // echo(\'not working\');
        // default plugin archive file
        return plugin_dir_path(__DIR__) . \'templates/archive-links.php\';
    }
}

1 个回复
SO网友:Tom J Nowell

get_template_directory_uri 不返回目录名,它返回目录的URL。file_exists 需要文件路径,而不是文件URL。

使用get_template_directory 相反,不要忘记检查get_stylesheet_directory 对于那些使用子主题的人来说也是如此