Laravel 5 ovewrite辅助函数__(),因为在wordpress中使用

时间:2018-06-28 09:40:47

标签: wordpress laravel-5

我已经阅读了几篇关于stackoverflow的文章,但是没有帮助,所以我希望有人能给出好的答案。

我正在将Laravel与wordpress一起使用。现在有一个错误。是否可以重命名或通过其他方法更改此设置?

错误:

Fatal error: Cannot redeclare __() (previously declared in C:app\laravel\vendor\laravel\framework\src\Illuminate\Foundation\helpers.php:821)

2 个答案:

答案 0 :(得分:0)

在文件wp-blog-header.php中加载,然后在wp-load.php中加载l110n.php

if ( !isset($wp_did_header) ) {

    $wp_did_header = true;

    // Load the WordPress library.
    require_once( dirname(__FILE__).'/wp-includes/l10n.php' );
    require_once( dirname(__FILE__) . '/wp-load.php' );

    // Set up the WordPress query.
    wp();

    // Load the theme template.
    require_once( ABSPATH . WPINC . '/template-loader.php' );

}

并使用您自己的名称使用此功能在您的LARAVEL项目中创建一个自己的帮助文件:

if (! function_exists('ownname')) {
    /**
     * Translate the given message.
     *
     * @param  string  $key
     * @param  array  $replace
     * @param  string  $locale
     * @return \Illuminate\Contracts\Translation\Translator|string
     */
    function ownname($key = null, $replace = [], $locale = null)
    {
        return app('translator')->getFromJson($key, $replace, $locale);
    }
}

答案 1 :(得分:0)

Laravel 5.4添加了一个名为__()的辅助函数。 此功能与WordPress的名称相同。

只需将Laravel的__重命名为___并运行“ composer update”。

您可以在以下位置找到文件:

[项目文件夹] \ vendor \ laravel \ framework \ src \ Illuminate \ Foundation \ helpers.php

有问题的功能在947行中。 别忘了也要注意938行。

我遇到了同样的问题。但是,Bas的解决方案无法做到这一点。希望这对某人有帮助。