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

WP All Import导入西里尔文内容时%postname%固定链接被截断报错如何解决

WP All Import西里尔文长标题固定链接截断、重复报错解决方案

问题原因

WP All Import的默认slug(固定链接后缀)生成逻辑独立于WordPress原生规则,对西里尔文等非拉丁字符的长度统计按字节计算而非字符数,因此会出现比原生规则短得多的截断问题,长标题截断后内容重复就会触发「重复记录」报错。手动创建文章时调用的是WordPress原生slug生成逻辑,所以不会出现截断。

可行解决方案

方案1:添加钩子调用原生slug生成逻辑(最推荐)

在当前主题的functions.php文件,或代码片段管理插件中插入如下代码,强制导入时使用WordPress原生规则生成slug:

add_filter('pmxi_save_post', 'custom_pmxi_use_native_slug', 10, 3);
function custom_pmxi_use_native_slug($postData, $import, $postToUpdate) {
    if (empty($postData['post_name']) && !empty($postData['post_title'])) {
        // 调用原生函数生成slug,自动处理转码、截断、重复加后缀逻辑
        $postData['post_name'] = wp_unique_post_slug(
            sanitize_title($postData['post_title']),
            $postToUpdate ? $postToUpdate->ID : 0,
            $postData['post_status'],
            $postData['post_type'],
            $postData['post_parent']
        );
    }
    return $postData;
}

该方案和手动创建文章的slug生成规则完全一致,不会出现截断,也会自动为重复slug添加数字后缀,从根源避免重复报错。

方案2:导入时手动指定slug字段

  • 在WP All Import导入配置的「标题与内容」步骤,找到*固定链接(slug)*配置项
  • 直接绑定导入源中提前准备好的完整slug字段,也可以绑定原西里尔文标题字段,由插件直接转换为slug
  • 勾选「允许WP All Import为重复slug添加数字后缀」选项,避免重复冲突

方案3:调整插件内置截断长度(旧版本兼容)

如果使用的是4.x及以下旧版本WP All Import,可直接调整插件的默认截断长度:

  • 进入对应导入任务的设置页面,按下F12打开浏览器开发者控制台
  • 输入命令PMXI_Plugin::$instance->options['slug_length'] = 200;回车执行,将截断长度调整为和WordPress原生一致的200字符

错误操作避坑

WordPress官方明确规定guid字段仅用作feed唯一标识,不是站点固定链接,修改guid会导致订阅、站点地图、历史版本关联等多个功能异常,不要使用修改guid的方式调整固定链接。

验证步骤

配置完成后先进行小批量测试导入,确认长标题文章的slug无截断、无重复报错后,再执行全量导入即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 21:36:03