在模板中,我需要include_once
一个外部PHP(一个include.php
) 它包含我需要在模板中使用的函数。
这些函数包括CSS样式和外部JS脚本。
CSS位于include中的函数内。php。JS脚本也需要在该区域中。
所以我需要include_once("includes.php")
(位于主题的根文件夹中)。我想我会使用类似的代码:
add_action(\'wp_head\', \'fst_include\',20);
function fst_include() {
include_once get_stylesheet_directory(). "/includes.php"; // load required functions
return;
}
由于动作是“wp\\u head”,因此应该得到include_once("includes.php")
头部区域。我使用get_stylesheet_directory
因为包括。php文件将位于子主题中。加载后,我可以添加一些CSS:
add_action(\'wp_head\', \'more_css\',30) // \'more_css\' is a function inside the includes.php file that contains some CSS
并添加一些JSadd_action(\'wp_head\', \'some_script\',30) // \'some_script\' is a function inside the includes.php file that adds some JS
我将最后两个add\\u操作的优先级设置为“30”,以便在include之后加载它们。php文件已加载。(因为includes.php的优先级为20。)但其中包括。php文件似乎没有加载,因为“some\\u script”函数(包含在includes.php中)不可用,并导致错误。
所以我需要一种方法来添加include_once(\'includes.php\')
以便模板中的函数“稍后”可用。我不这么认为get_template_part
是适当的,因为include_once
需要在分区中。
Added - But Why?
为什么我需要这样做?“我的模板”显示表单。表单的代码和功能在include中。php文件。甚至表单也由include中的函数显示。php。包括。php文件是一个包含函数、脚本和操作的“包”,在显示表单时,更改DOM元素以执行特定功能,用户填写表单并提交表单。(“包”是用于保护表单(如联系人表单)免受垃圾邮件机器人攻击的过程。这是一个有效的过程,但有点复杂。如果你真的感兴趣,你可以here 了解它。)
包括。php文件还构建为可在非WP页面上使用的独立/非WP代码。我不想维护两个版本的代码。
如果在WP网站上使用,该表单必须以任何主题的视觉外观“活”下来。我想模板是最好的方法。所以我需要得到我的收入。php“嵌入”模板,以便可以调用其函数。
至于add\\u操作中使用的优先级,这是为了确保包含。php文件包含在该区域中,因此我可以调用包含表单所用CSS的函数。如果包括。如果不先加载php,则CSS调用函数将失败。