Laravel 和 WordPress 前端

Posted

技术标签:

【中文标题】Laravel 和 WordPress 前端【英文标题】:Laravel and Wordpress Frontend 【发布时间】:2017-10-18 07:57:42 【问题描述】:

我正在 Laravel 上构建一个网络应用程序,其中涉及多种用户类型的登录等。

我想对大多数与 CMS 相关的东西使用 Wordpress 后端和前端。我想要 Wordpress 前端,因为它更容易为客户维护,并且该网站的许多面向用户的页面都是可以来自 wordpress 的内容。

我希望网站显示来自 wordpress 的页面,如果 Laravel 没有处理该路线。

http://webapp.com/ ->(登陆页面)来自 Wordpress

http://webapp.com/laravelRoute -> Laravel

http://webapp.com/some-post-url -> WordPress。

我怎样才能通过让 Laravel 和 Wordpress 很好地使用路由来实现这一点?

我尝试在 public/ 文件夹中安装 Wordpress。但是它不能识别 Laravel 路由,就像一般的 wordpress 网站一样工作。

【问题讨论】:

But it is not working 是你的错误吗? 将在一分钟内分享一个错误。 @IvascuMadalin 安装在仅显示 wordpress 站点的公共文件夹中。我尝试在顶部添加来自 Laravel 的 public/index.php 的 index.php 代码。它只显示 laravel 路线。 我尝试在顶部添加 Laravel 的 public/index.php 中的 index.php 代码 在什么之上? @IvascuMadalin 在现有代码之上。 require __DIR__.'/../vendor/autoload.php';。为什么这么激进? 【参考方案1】:

要将 Laravel 和 Wordpress 合并到同一级别,您有两个或更多选项。

第一个选项是设置 .htaccess 重写规则并将所有 Laravel 路由重定向到 laravel-index.php 文件。您将 Laravel 应用程序 index.php 文件重命名为该文件。

第二个选项是禁用 wordpress index.php 文件,而使用 Laravel 的。在 laravel 中创建一个调用 Wordpress 对象的全部路由。因此,使用这种方法,您所要做的就是创建 Laravel 路由,其余的将交给 Wordpress。

【讨论】:

@scriptonomy。你能分享更多关于第二个选项的代码吗? 我试过做类似的事情:Route::get('/',function() // Let wordpress handle the code generation. ); 【参考方案2】:

这就是我能够修复它的方法。

http://example.com/ -> Laravel 代码

<laravel code root>/public/pages -> wordpress 代码

您应该能够从 wordpress 内容访问http://example.com/pages/ ->。

您还需要配置 nginx 来处理 Wordpress URL 重定向:

        ...
        location /pages/index.php(/.*)?$         
            fastcgi_split_path_info ^(/pages/index.php)(/.+)$;
            fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_read_timeout 1000;
            fastcgi_param PATH_INFO $fastcgi_path_info;
            include fastcgi_params;
        
        location /pages/  
            if (!-e $request_filename) 
                    rewrite ^.*$ /pages/index.php last;    
                
            try_files $uri $uri/ pages/index.php?args; 
        
        location /  ...

【讨论】:

我们如何在 apache 服务器上实现这一点?

以上是关于Laravel 和 WordPress 前端的主要内容,如果未能解决你的问题,请参考以下文章

如何将WordPress集成到Webpack中?

一步一步教你制作的第一个 WordPress 插件

一步一步教你制作的第一个 WordPress 插件

php WordPress删除过滤器(remove_filter转换为remove_class_filter)以删除没有类对象访问的过滤器/操作。与Wor一起使用

php 通过代码在WordPress中创建一个新的管理员用户。将此文件放在mu-plugins目录中并更新变量,然后在Wor中加载页面

Laravel 和 Wordpress