2016-08-23 4 views
1

私はWordpressプラグインのAPIとしてLaravelを使用する予定です。構造は以下の通りです:ワードプレス機能をLaravelにサービスプロバイダとして統合

use File; 
use Illuminate\Support\ServiceProvider; 

class WordpressServiceProvider extends ServiceProvider 
{ 

    protected $bootstrapFilePath = '../../wp/wp-load.php'; 

    public function boot() 
    { 
     wp_enqueue_style('app', '/app/public/app.css'); 
    } 

    public function register() 
    { 
     if(File::exists($this->bootstrapFilePath)) { 
      require_once $this->bootstrapFilePath; 
     } else throw new \RuntimeException('Wordpress Bootstrap File Not Found'); 
    } 
} 

私もprovider =>Laravel-dir/config/app.php下として、それを追加しました::

App\Providers\WordpressServiceProvider::class, 

- main-directory 
    - Laravel-dir 
    - WordPress-dir 

私は以下のようにLaravelのためのWordpressのサービスプロバイダを作成しました

誰かがLaravelのページにアクセスしたとき、私はWordP ress adminユーザーがログインしています。

以下の「編集」へスキップ:私はis_admin()を試して、管理者を確認しました。機能を呼び出すと(不平を言わない)、サービスプロバイダが動作していると仮定していますが、wp-adminとしてログインしていますが、is_admin()関数は常にfalseを返します。


編集:私はis_adminページが管理者ページであるかどうかをチェックすることで実現しました。代わりに私は使用しなければならなかったwp_get_current_user()

私はWordpressのプラグインでwp_get_current_user()を使ってみました。すべての管理者の情報を返します。しかし、私がLaravelで使用すると、配列の空のセットが返されます。

+1

_を見て使用している場合

location ^~ /laravel { alias /pat/to/laravel/public; try_files $uri $uri/ @laravel; location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; fastcgi_index index.php; include fastcgi_params; } } location @laravel { rewrite /laravel/(.*)$ /laravel/index.php?/$1 last; } 

私はLaravelでそれを使用し、配列の空のセットを返します "_おそらくクッキーの問題? WPセッションCookieがどのパスに設定されているかを確認し、Laravelを呼び出すURLパスを調べます。 – CBroe

答えて

0

私は自分自身、同様の問題に遭遇してきました。この問題は私のシステムの構造によって引き起こされました。

私は、ルートドメイン上で実行されていたのに対し、私はサブドメイン上で実行していました。このような場合、サブドメインのルートドメインCookieにアクセスすることはできません。これを解決するために私は自分のwebroot(wordpressがインストールされている)のサブディレクトリに自分のlaravelインストールを移動し、www.yourdomain.com/laravelから自分のlaravelインストールを提供するnginxの書き換えルールを作成しました。

あなたがyourdomain.com/laravelからlaravelのインストールを提供するために/etc/nginx/sites-available/yourdomain.comを編集し、nginxのために追加する必要があります。あなたは、Apacheの場合は、しかし、」Apache URL Rewriting Guide

-1

管理者ユーザーの場合ではなく、管理者ページにいるかどうかを判断するためにis_admin()が使用されます。

https://codex.wordpress.org/Function_Reference/is_admin

+0

あなたは正しいです。 'is_admin()'の代わりに 'wp_get_current_user()'を使う必要がありました。 **しかし**、Wordpress Pluginで 'wp_get_current_user()'を使用すると、情報を返します。しかし、Laravelアプリケーションで 'wp_get_current_user()'を使用しようとすると、空の配列セットを返します。 WPの機能が認識できるようになり、クラッシュや機能の不満は存在しません) – senty

+0

これを達成したいと思って、私はセンティと同じ問題があります。それはwordpress/laravel structuteやlaravelからアクセスされるパス/ URLに関連していますか? – PU2014

関連する問題