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

使用WordPress CLI导入页面时如何忽略重复slug页面?

WordPress CLI导入时忽略已存在的重复页面方案

方法一:通过过滤XML文件实现精准忽略

先提取新站点已存在页面的slug,再过滤原XML文件中对应slug的条目,最后导入过滤后的内容:

  1. 导出新站点已存在页面的slug列表到本地文件:
wp post list --post_type=page --field=slug > existing-slugs.txt
  1. 过滤原XML文件,移除slug已存在的页面条目,生成新的待导入XML:
awk 'NR==FNR { slugs[$0]; next } /<wp:post_name>/ { current_slug=substr($0,16,length($0)-30); if (current_slug in slugs) skip=1; else skip=0 } !skip' existing-slugs.txt myoldsite.wordpress.2022-09-15.002.xml > filtered-import.xml
  1. 导入过滤后的XML文件:
wp import filtered-import.xml

方法二:利用WP CLI钩子(进阶方案)

如果需要更灵活的逻辑,可以自定义钩子在导入前自动检查并跳过重复页面:

  1. 在新站点的functions.php或自定义插件中添加以下代码:
add_action('wp_import_post_before_insert', function($post) {
    if ($post['post_type'] !== 'page') return;
    $existing_post = get_page_by_path($post['post_name'], OBJECT, 'page');
    if ($existing_post) {
        throw new Exception("Skipping page with slug '{$post['post_name']}' (already exists)");
    }
});
  1. 执行原导入命令,钩子会自动跳过已存在slug的页面:
wp import myoldsite.wordpress.2022-09-15.002.xml

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 09:20:33