Повторное объявление функции в дочерней теме - PullRequest
0 голосов
/ 22 ноября 2018

PS Привет, Админ, я пытался найти решение, но нигде не видел той же проблемы!

Привет всем,

У меня есть дочерняя тема.У меня есть функция, которая обернута, если! 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
    }
}
}

Поскольку она находится во включаемых папках, но обернута в 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, но тогда он должен игнорировать существующий файл.

Заранее спасибо.

1 Ответ

0 голосов
/ 22 ноября 2018

При проверке существования функции за именем функции есть пробел.!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;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...