2017-02-09 80 views
1

我正在開發一個使用Laravel的網站,它具有並行和獨立運行的WordPress博客部分。
由於Laravel 5.3一切運行平穩,使用服務提供商,我可以將wp-load.phprequire_once()調用一起使用,並使用所有WordPress功能開箱並獲取/更新WordPress帖子。
不幸的是,在Laravel 5.4中已經定義了輔助函數__(),並且這與在l10n.php中聲明的相同WP函數產生衝突。
我嘗試使用命名空間,但沒有運氣。
這是我的服務提供商的代碼:Laravel 5.4和WordPress 4.7在幫助函數中發生衝突__()

<?php 
namespace App\Providers; 

use Illuminate\Support\ServiceProvider; 

class WordPressServiceProvider extends ServiceProvider 
{ 

    /** 
    * Path to our WP installation 
    * 
    * @var string 
    */ 
    protected $bootstrapFilePath = '/wp-paths/wp-it-news/wp-load.php'; 

    /** 
    * Bootstrap the application services. 
    * 
    * @return void 
    */ 
    public function boot() 
    { 
     // 
    } 

    /** 
    * Register the application services. 
    * 
    * @return void 
    */ 
    public function register() 
    { 
     if (\File::exists(public_path() . $this->bootstrapFilePath)) 
     { 
      require_once(public_path() . $this->bootstrapFilePath); 
     } 
    } 

} 
+2

那麼,如果你嘗試,幷包括一個系統到其他的代碼,我不認爲這是「獨立運行」。除了修改一個或另一個的代碼外,你可以做的事情不多。我建議您使用WordPress Rest API來讓您的Laravel與您的WP進行通信,而不是基本上只是將他們的代碼庫放在一起,並希望最好,就像您一直在做的那樣。 – CBroe

+0

@CBroe使用WordPress Rest API至少會產生一個額外的請求,對吧?我想避免這種情況,唯一的方法就是直接訪問數據庫。我在死衚衕嗎? –

回答

0

我結束了使用WordPress API,如Cbroe建議。

Docs here

curl -X OPTIONS -i http://demo.wp-api.org/wp-json/wp/v2/posts 
+0

請從鏈接添加一些內容 – Robert

0

您可以在引導供應商/ autoload.php前WP-load.php/autoload.php