我对WordPress开发非常陌生。我在开发自己的类和名称空间时遇到了这个错误,以便更容易在跨平台/框架上重用代码。
我添加了如下CLI命令
wp product:sync
当我运行CLI命令时,我的类在关闭时运行,我可以访问internel WordPress功能不起作用的部分。
CLI\\u控制器。php
<?php
namespace WMS\\Controllers;
use WMS\\Controllers\\CLI\\CLI_Products;
class CLI
{
function init()
{
add_action(\'cli_init\', function () {
$product_cli = new CLI_Products();
\\WP_CLI::add_command(\'product:sync\', $product_cli->execute());
\\WP_CLI::add_command(\'stock:sync\', $product_cli->hello_world());
\\WP_CLI::add_command(\'order:sync\', $product_cli->hello_world());
});
}
}
Product\\u控制器。php
<?php
namespace WMS\\Controllers\\CLI;
use WMS\\Controllers\\WMSApi\\APIService\\Items;
class CLI_Products
{
public function hello_world()
{
\\WP_CLI::line(\'Hello World!\');
}
function execute()
{
$api_items = new Items();
$args = array(
\'post_type\' => \'product\',
\'posts_per_page\' => 10
);
$loop = new \\WP_Query($args);
while ($loop->have_posts()) {
$loop->the_post();
global $product;
if ($product->get_sku()) {
$item = [
\'sku\' => $product->get_sku(),
\'description\' => get_the_title()
];
print_r($item);
} else {
echo \'Product missing SKU number\';
}
}
$items->import($item);
wp_reset_query();
}
}
所以当我运行这个命令时,它会给出这个错误
PHP致命错误:未捕获错误:在/var/www/frontend/wp-content/plugins/wordpress-woomerce-plugin/src/Controllers/CLI/Product\\u-Controller中找不到Class\'WMS\\Controllers\\WMSApi\\APIService\\Items\'。php:16堆栈跟踪:#0/var/www/frontend/wp-content/plugins/wordpress-woomerce-plugin/src/Controllers/CLI\\u-Controller。php(14):WMS\\Controllers\\CLI\\CLI\\U产品->;执行()
因此,看起来主文件没有加载成功,是否有办法在我的CLI命令中加载自定义类/名称空间?