我目前正在开发一个WordPress网站,选择的购物平台是WooCommerce。
我想创建一系列模板文件,在content-product-single.php
文件中调用,其中包含数学计算。出于某种原因,数学计算仅在放置在functions.php
而不是我指定的模板文件时才起作用。有人建议我使用get_template_part
标签的方式可能不正确。这是我正在使用的原始代码:
<?php
if (is_product_category('category-name')) {
get_template_part( 'templates/template-a' );
}
elseif (is_single('product-slug')) {
get_template_part( 'templates/template-b' );
}
elseif (is_single('product-slug')) {
get_template_part( 'templates/template-c' );
}
?>
如果有人注意到我上面代码中的任何错误,那么请告诉我,因为这可能是问题但是目前我认为我的数学编码只能在functions
文件中工作。< / p>
出于组织目的,我是否可以创建多个functions.php
文件,或者这是不好的做法?我尝试了functions-template-file-name.php
并将其置于主题的根目录中,但数学仍然不起作用。
答案 0 :(得分:1)
functions.php
(子目录inc
内的文件)可以include这样的辅助文件:
include_once dirname(__FILE__) . '/inc/shortcodes.php';
include_once dirname(__FILE__) . '/inc/frontend.php';
在functions.php
(和包含的文件)上,你应该只添加钩子(过滤器和动作)及其各自的函数回调。
在模板文件(及其get_template_part
s)上,您将保留HTML并最终调用一个主题函数,例如
<div class="results">
<?php my_get_results(); ?>
</div>
my_get_results()
(在functions.php中)类似于:
function my_get_results(){
$results = get_something();
foreach($results as $r) {
echo '<span>' . $r . '</span>';
}
}
答案 1 :(得分:0)
function.php文件由Wordpress自动加载,但从那里你可以包含任意数量的php文件(在你的情况下,你的功能或计算代码文件)。
您可以添加以下文件:
require_once( __DIR__ . '/template/template-a.php');
PHP脚本相对于当前路径运行,而不是相对于自己文件的路径。使用 DIR 会强制模板相对于自己的路径发生。