wordpress - 我正在尝试将 Composer 与 WordPress 插件一起使用

标签 wordpress composer-php

我的源文件是这样开始的:

<?php
/**
 * @package JpLists
 */
namespace Inc\Pages;

use WP_List_Table;

class ListTable extends WP_List_Table {

当我尝试扩展标准 WordPress 类时,我最终在浏览器中遇到以下错误:

Fatal error: Class 'WP_List_Table' not found in /srv/www/wordpress/wp-content/plugins/jpLists/inc/Pages/ListTable.php on line 9

This post suggests Composer + WordPress plugins is a bad idea

我正准备认输并回到硬编码的 require_once() 调用,但命名空间和自动加载的想法吸引了我。

我的composer.json 文件如下所示:

{
    "name": "jp/jp-lists",
    "description": "WordPress plugin",
        "type": "wordpress-plugin",
    "license": "GPL",
    "authors": [
        {
            "name": "JP",
            "email": "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="442e3404213c25293428216a272b29" rel="noreferrer noopener nofollow">[email protected]</a>"
        }
    ],
    "minimum-stability": "dev",
    "require": {},
    "autoload": {
        "psr-4":{"Inc\\": "./inc"}
    }
}

最佳答案

事实证明,如果您只是在名称前添加“\”,PHP 就会知道您引用的是全局命名空间中的类,而不是文件开头指定的命名空间。

use \WP_List_Table;

我已经放弃了使用命名空间和 Composer 的努力几个月了,但经过对命名空间的一些勤奋研究后,我决定再次解决这个问题,这是一个简单的修复。

关于wordpress - 我正在尝试将 Composer 与 WordPress 插件一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52305897/

相关文章:

php - 自己的Wordpress插件,MySQL语法问题

仅在帖子中使用 Css,wordpress

javascript - (jQuery.js 错误)未捕获错误 : Syntax error, 无法识别的表达式:[href=#]

php - WordPress:为什么我从 ajaxurl 收到 400?

windows - Composer 卸载

cakephp - 如何在 CakePHP 插件中使用 Composer 包

c# - 尝试单击按钮登录网站(Httpwebrequest - cookies)

php - 运行 php artisan serve 命令时,laravel 无法打开流 fatal error

git - 在本地覆盖 Composer 存储库

php - Symfony2 创建自定义资源的符号链接(symbolic link)