php command 访问路径,php – 如何从Artisan Command访问WordPress功能

我跟着这个

tutorial使用WordPress和Laravel,我能够从我的Laravel控制器访问WordPress功能.

基本例子

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;

use App\Http\Controllers\Controller;

use Corcel;

class WordPressController extends Controller

{

public function getIndex ()

{

return redirect('/');

$posts = get_posts([

'posts_per_page' => 20,

'order' => 'ASC',

'orderby' => 'post_title',

]);

return $posts;

}

这工作,我已经能够访问到目前为止我尝试过的所有WordPress方法.

问题

我遇到的问题是当我创建并注册一个新的artisan命令并尝试从那里访问那些相同的方法时.

namespace App\Console\Commands;

use Illuminate\Console\Command;

use Illuminate\Http\Request;

use App\Http\Requests;

class WPTags extends Command

{

protected $signature = 'wp:tags';

protected $description = 'Output tags from WordPress';

public function __construct()

{

parent::__construct();

}

public function handle()

{

$tags = get_tags([

'number'=>20,

'offset' => 10,

'hide_empty' => true,

]);

return $tags;

}

据我所知,Laravel 5通过index.php文件导入WordPress方法的方式存在问题.我想我需要做一些自动加载,但我迷路了.我已经尝试重复我的artisan命令文件构造函数中的index.php文件中采取的步骤.

我能想到的另一个(hacky)事情是将控制器导入我的工匠命令,但我真的不愿意这样做.

更新

接受的答案是要走的路.你会遇到一些事情.您将获得与客户端中未设置的$_SERVER变量相关的一些错误.这是我用来抑制/处理这些错误的代码.

这不是完美的,但对于本地开发来说,这至少可以让你高效.

//assumes you're using localhost as your base url

$_SERVER['HTTP_HOST'] = "localhost";

$_SERVER['SERVER_PROTOCOL'] = "HTTP/1.1";

if (!isset($_SERVER['REQUEST_METHOD'])) {

$_SERVER['REQUEST_METHOD'] = "GET";

}

if (!isset($_POST['action'])) {

$_POST['action'] = "undefined";

}

define('WP_USE_THEMES', false);

require __DIR__."/../public/wordpress/wp-blog-header.php";

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值