You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在WordPress WooCommerce中创建SKU库存列表PHP页面遇404问题求助

解决WordPress自定义PHP文件404错误及SKU/库存导出优化

一、404错误排查与解决步骤

1. 验证文件位置与命名

  • 检查public_html根目录下是否存在stock.php,避免上传到子目录(如wp-content)或文件名拼写错误(Linux服务器区分大小写,Stock.php与stock.php会被识别为不同文件)
  • 通过主机控制面板的文件管理器直接确认,确保文件与wp-load.php处于同一层级目录

2. 修改.htaccess重写规则

WordPress默认重写规则会拦截非原生URL,需在规则前添加允许访问stock.php的指令:
打开根目录下的.htaccess文件,将以下代码添加到WordPress默认规则之前:

# 允许直接访问stock.php
RewriteRule ^stock.php$ - [L]

# 以下为WordPress默认规则(保留原有内容即可)
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

保存后设置.htaccess权限为644,避免权限问题导致规则不生效

3. 刷新固定链接规则

进入WP后台 → 设置 → 固定链接,选择任意非默认选项(如「文章名」),点击「保存更改」,强制刷新重写规则缓存

二、代码优化(解决潜在问题并提升性能)

原代码存在路径依赖、性能冗余等问题,优化后的代码如下:

<?php
// 使用绝对路径加载WordPress环境,避免路径解析错误
require_once(__DIR__ . '/wp-load.php');

// 设置输出为纯文本,确保格式纯净无冗余内容
header('Content-Type: text/plain; charset=utf-8');

// 仅查询已发布商品的ID,减少数据库查询负载
$args = array(
    'post_type'      => 'product',
    'posts_per_page' => -1,
    'post_status'    => 'publish',
    'fields'         => 'ids',
);

$product_ids = get_posts($args);

// 遍历输出SKU与库存
if (!empty($product_ids)) {
    foreach ($product_ids as $id) {
        $product = wc_get_product($id);
        if (!$product) continue;

        $sku = $product->get_sku();
        $stock_quantity = $product->get_stock_quantity();

        if (!empty($sku) && isset($stock_quantity)) {
            echo $sku . ';' . $stock_quantity . "\n";
        }
    }
} else {
    echo 'No products found';
}
?>

优化点说明:

  • 用__DIR__获取当前文件目录,确保wp-load.php路径绝对正确
  • 添加Content-Type头,强制输出纯文本,避免混入WP默认HTML内容
  • 仅查询商品ID而非完整文章数据,大幅降低数据库查询压力
  • 增加post_status筛选,只处理已发布商品
  • 增加$product有效性判断,避免无效商品导致的报错

内容的提问来源于stack exchange,提问作者Alfredo Saez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 05:37:47