如何在WordPress主题中正确包含或获取文件内容

时间:2018-01-24 作者:unity ekeinde

这是我添加到主题目录中的一个文件夹中的代码,即wp-content/themes**/THEMENAME/audiounity/**

<?php
$data_file = unserialize(base64_decode(file_get_contents(\' get_template_directory() . "/audiounity/website_setting.conf"\')));
以下是我在查看帖子后遇到的错误

Warning: file_get_contents( get_template_directory() . "/audiounity/website_setting.conf"): failed to open stream: No such file or directory in /home/unerdportfolio/public_html/wp-content/themes/frontier/audiounity/result.php on line 2

注意:我的文件夹名是audiounity

澄清

我在下面使用了此代码the_content();

<?php
    include( get_template_directory() . \'/audiounity/result.php\' ); 

     ?>
在这个结果中。php是我尝试调用的地方...get_template_directory() . "/audiounity/website_setting.conf"\')));

1 个回复
SO网友:Tom J Nowell

有两个问题:

include( get_template_directory() . \'/audiounity/result.php\' );
其结果可能是:

/srv/www/example.com/public_html/wp-content/themes/audiounity/audiounity/result.php

该函数的Codex条目的第一行是:

检索当前主题目录的绝对路径。

如果是儿童主题,那么你需要使用get_stylesheet_directory. *_template_* 函数始终引用父主题,*_stylesheet_* 功能是指活动主题

你错过了一个更大的问题

$data_file = unserialize(base64_decode(file_get_contents(\' get_template_directory() . "/audiounity/website_setting.conf"\')));

  • 。conf文件对所有人都是可读的,任何人都可以下载你的主题.conf 文件,将其作为PHP数组存储在PHP文件中不是更有意义吗
  • unserialize 将取消序列化PHP结构,从而使您面临PHP对象注入攻击。避免序列化和反序列化PHP如果要存储配置,有2个选项:

    使用JSON,json_encodejson_decode

  • 在文件中使用PHP数组如果需要修改这些文件,请不要将其作为默认值使用,并将更改作为选项存储在数据库中

结束

相关推荐

Taxonomy Templates

我不太明白如何链接到我的分类法模板。我需要做一个临时页面并从那里查询我的条款吗?我当前正在使用分类层次结构:Taxonomy$labels = array( \'name\' => __( \'Product Categories\' ), \'singular_name\' => __( \'Product Category\' ), \'search_items\' =>