【发布时间】:2023-03-08 12:45:01
【问题描述】:
我正在使用 Laravel 开发一个网站,其中一个 WordPress 博客部分并行且独立地运行。
自 Laravel 5.3 以来,一切运行顺利,使用服务提供商,我能够在 require_once() 调用中包含“wp-load.php”,并使用所有开箱即用的 WordPress 功能并获取/更新 WordPress 帖子。
不幸的是,在 Laravel 5.4 中定义了辅助函数 __(),这会与 l10n.php 中声明的相同 WP 函数产生冲突。
我尝试使用命名空间,但没有运气。
这是我的服务提供者的代码:
<?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 使用 WordPress Rest API 会产生至少一个额外的请求,对吧?我想避免这种情况,唯一的另一种方法是直接访问数据库。我是不是走投无路了?
标签: php wordpress require-once laravel-5.4