我正在開發一個使用Laravel的網站,它具有並行和獨立運行的WordPress博客部分。
由於Laravel 5.3一切運行平穩,使用服務提供商,我可以將wp-load.php
與require_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);
}
}
}
那麼,如果你嘗試,幷包括一個系統到其他的代碼,我不認爲這是「獨立運行」。除了修改一個或另一個的代碼外,你可以做的事情不多。我建議您使用WordPress Rest API來讓您的Laravel與您的WP進行通信,而不是基本上只是將他們的代碼庫放在一起,並希望最好,就像您一直在做的那樣。 – CBroe
@CBroe使用WordPress Rest API至少會產生一個額外的請求,對吧?我想避免這種情況,唯一的方法就是直接訪問數據庫。我在死衚衕嗎? –