function_exists,无法重新声明新函数


function_exists , Cannot redeclare new function

我使用wp-jalali wordpress插件它有一个函数farsi_num。我使用这个函数,但如果没有安装插件,这个函数是未定义的。

我在functions.php 中放入了以下代码

if(!function_exists('farsi_num'))
function farsi_num( $val ) {
    return $val;
}

但是当用户想要安装wp-jalali插件时,我们会出现错误!

致命错误:无法重新声明farsi_num()(以前在
中声明F:'xampp'htdocs'wordpress'wp-content'themes'khoshkhabar'functions.php:54(在
F:'xampp'htdocs'wordpress'wp-content'plugins'wp-jalali'lib'deprecated_fns.php在线119

wp-admin/plugins.php

尝试使用add_filter:LINK

function.php

function pippin_show_fruits() {
    $fruits = array(
        'apples',
        'oranges',
        'kumkwats',
        'dragon fruit',
        'peaches',
        'durians'
    );
    $list = '<ul>';
    if(has_filter('pippin_add_fruits')) {
        $fruits = apply_filters('pippin_add_fruits', $fruits);
    }
    foreach($fruits as $fruit) :
        $list .= '<li>' . $fruit . '</li>';
    endforeach;
    $list .= '</ul>';
    return $list;
}
echo apply_filter('pippin_show_fruits');   //CALL FUNCTION

your plugin

    function pippin_add_extra_fruits_plugin($fruits) {
        // the $fruits parameter is an array of all fruits from the pippin_show_fruits() function
        $extra_fruits = array(
            'plums',
            'kiwis',
            'tangerines',
            'pepino melons'
        );
        // combine the two arrays
        $fruits = array_merge($extra_fruits, $fruits);
        return $fruits;
    }
    add_filter('pippin_add_fruits', 'pippin_add_extra_fruits_plugin');

我理解你的问题。在文件deprecated_fns.php中而不是在functions.php中激发的错误。因为之前包含了functions.php。因此,您必须检查文件deprecated_fns.php中的function_exits,或者在functions.php 中为您的函数使用其他名称