Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从Artisan命令访问WordPress函数_Php_Wordpress_Laravel_Laravel 5_Laravel Artisan - Fatal编程技术网

Php 如何从Artisan命令访问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

我随后将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
{
    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";