函数.php中包含的PHP文件似乎不起作用

时间:2015-06-12 作者:donnie_g

这是我在WordPress StackExchange上的第一篇帖子,我会尽量准确。

我的问题是:Is there anything in particular I should do to the files I\'m including in my theme\'s functions.php file?

我正在创建WordPress主题functions.php 文件现在越来越大了。通过将一些函数转换为插件,我成功地删除了很多代码,但它仍然很大。

我希望能够使用includes组织代码。我试过几次,但都没用。就像我在函数中包含的文件一样。php文件被忽略。

// Configure the WordPress Customizer
require(get_template_directory_uri() . \'/admin/customizer/customizer.php\');
上述代码应该调用一个文件,该文件正在添加一个函数,该函数在WordPress自定义程序中创建节、设置和控件。放置函数时directly into my functions.php file 一切都很好,但当我尝试将其包括在内时,它什么也做不到。

包含的文件也包含includes,我不知道这是否相关。

上面的代码已挂接after_setup_theme, 如果你认为我应该做些不同的事情,请告诉我,我想学习

3 个回复
最合适的回答,由SO网友:Pieter Goosen 整理而成

我总是破坏我的功能。例如,所有与页脚相关的函数都会放入一个名为footer-functions.php 分页函数进入一个名为pagination-functions.php. 这样,我的代码就保持了组织性和可管理性,而且我不会杀死我的functions.php. 然而,这只与特定于主题的功能有关,特定于站点的功能以更为相同的方法进入插件

回到正题上来,最后我将所有较小的特定函数文件都包含到functions.php 具有require_once() 如下所示

require_once( \'footer-functions.php\' );
require_once( \'pagination-functions.php\' );
这就是你所需要的。您不应该将其挂接到任何钩子或将其添加到任何函数中,它可能具有可能导致站点中断的预期行为

SO网友:harryg

你的问题是你使用了get_template_directory_uri() 包含路径的函数。如函数名所示,这将返回一个URI(不是路径),这对于将一个php文件包含到另一个php文件中没有任何用处。

只需输入要包含的文件的相对路径。

E、 g.如果您的结构是:

/my-theme
 |--functions.php
 |--/lib
     |--customizer.php
     |--tools.php
 |--style.css
 ...etc
在您的功能中。php简单put

<?php

require_once(\'lib/customizer.php\');
require_once(\'lib/tools.php\');
无论是否使用require(), require_once()include()

SO网友:Innate

在我看来,函数文件可以任意大,但将函数组织到包含中是一个非常合乎逻辑的过程。我首先检查get\\u template\\u directory\\u uri()是否返回了正确的路径。如果/admin/is位于主题根目录中,则还可以在主题中包含没有完整路径的文件:require(“/admin/customizer/customizer.php”);

结束

相关推荐

WP插件-使用Includes显示页面内容

所以我有一个插件,我一直在努力。它添加了一个菜单和多个子菜单。每个子菜单页都包含一个表单,此表单是在名为add\\u content\\u submenupagename的函数中创建的。此函数用于add\\u子菜单挂钩的末尾。我的问题是,我可以在单独的文件中添加类似的表单代码,然后将这些文件用作每个子菜单页的内容吗?我认为这将是一个比我目前拥有的更干净的解决方案。此外,我正在使用PHP处理提交的表单。由于我现在有多个表单,需要以不同的方式进行处理,是否也可以将其放入includes文件中?我的目标是使我的