P.S。嗨,管理员,我试图寻找解决方案,但在任何地方都找不到相同的问题!
大家好,
我有一个儿童主题。如果!function_exists如下,我有一个包装的函数。其中的文件包括文件夹。该功能位于wp-content / themes / themename / includes / alias-function.php
if (!function_exists('jem_render_buy_fee ')) {
function jem_render_buy_fee() {
$fee=(ea_get_option('order_commission_buyer'))?ea_get_option('order_commission_buyer'):'';
if($fee){
?>
<div class="jem-commission-fee">
<span><?php _e($fee.'% commission fee included', 'themes'); ?></span>
</div>
<?php
}
}
}
因为它在include文件夹中,但包装在function_exists中,所以我在下面的functions.php中声明了该函数。该文件位于wp-content / themes / themename-child / functions.php
function jem_render_buy_fee() {
$fee=(ea_get_option('order_commission_buyer'))?ea_get_option('order_commission_buyer'):'';
if($fee){
?>
<div class="jem-commission-fee">
<span><?php _e($fee.'% GST inclusive', 'themes'); ?></span>
</div>
<?php
}
}
我遇到了错误:
Your PHP code changes were rolled back due to an error on line 1873 of file wp-content/themes/themename/includes/alias-function.php. Please fix and try saving again.
Cannot redeclare jem_render_buy_fee() (previously declared in wp-content/themes/themename-child/functions.php:215)
我为什么要得到这个?该错误包含在function_exist中。
我可以看到它正在加载function.php,但是它应该忽略文件中现有的那个。
谢谢。
答案 0 :(得分:0)
在检查函数是否存在时,函数名称后面有一个空格。
!function_exists('jem_render_buy_fee ')
如果调用代码的顺序正确,那么没有此空间应该可以正常工作。
首次通话:
function jem_render_buy_fee() {
$fee=(ea_get_option('order_commission_buyer'))?ea_get_option('order_commission_buyer'):'';
if($fee){
?>
<div class="jem-commission-fee">
<span><?php _e($fee.'% GST inclusive', 'themes'); ?></span>
</div>
<?php
}
}
然后致电:
<?php
if (!function_exists('jem_render_buy_fee')) { //Space removed from 'jem_render_buy_fee '
function jem_render_buy_fee() {
$fee=(ea_get_option('order_commission_buyer'))?ea_get_option('order_commission_buyer'):'';
if ($fee): ?>
<div class="jem-commission-fee">
<span><?php _e($fee.'% commission fee included', 'themes'); ?></span>
</div>
<?php endif;
}
}