Php 如何从Artisan命令访问WordPress函数
我随后将WordPress与Laravel一起使用,我能够从我的Laravel控制器访问WordPress功能 基本示例Php 如何从Artisan命令访问WordPress函数,php,wordpress,laravel,laravel-5,laravel-artisan,Php,Wordpress,Laravel,Laravel 5,Laravel Artisan,我随后将WordPress与Laravel一起使用,我能够从我的Laravel控制器访问WordPress功能 基本示例 <?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Requests; use App\Http\Controllers\Controller; use Corcel; class WordPressController extends Controller
<?php
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;
}
我认为这部分
将Laravel连接到Wordpress
define('WP_USE_THEMES', false);
require __DIR__."/../public/wordpress/wp-blog-header.php";
更好地放在app.php
中,因为每次调用laravel:web、控制台等时都会打开此文件。这是没有测试,但我认为这应该工作
另一个,我认为更好的方法是将此文件包含到composer autoloader中,但您无法定义常量。我不熟悉此主题,因此这可能是一个愚蠢的问题,但我会问它以防万一。在第一个示例中,您在顶部导入Corcel。这不就是允许你使用WordPress功能的原因吗?如果是的话,你不应该在Artisan命令中也强调这一点吗?一点也不愚蠢的问题,我之前确实尝试过,但它不起作用,但我没有正确导入插件。一旦我开始单独导入每个类,它现在就可以工作了。因此,
use Corcel
变成了use Corcel\Posts
等等……更重要的是,这确实提供了一个访问WordPress的界面,但它不能让我直接访问WordPress的方法,这正是我真正想要的。是的,但是如果我能够在自动加载wp blog header.php
之前定义常量,那么可能会有一种策略。我会尝试一下,然后再报告。谢谢你接受我的答案-哪一个是正确的方法?将此部分包含在bootstrap/app.php中,或者将其放置在bootstrap/app.php
中,对于上述修复非常有效。自动加载造成了很多错误,我没有费心去尝试让它工作。谢谢你的帮助。
//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";
define('WP_USE_THEMES', false);
require __DIR__."/../public/wordpress/wp-blog-header.php";