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

如何在WordPress站点移除日期am/pm之后的网页文本

解决方案:批量保留标题、来源与时间,删除后续摘要

嘿,这个需求很清晰,我给你整理了几个从简单到进阶的实现方案,你可以根据自己的技术能力和内容量来选:

1. 手动修改(适合内容量少的情况)

如果你的文章数量不多(比如几十篇以内),直接登录WordPress后台,挨个打开文章编辑页面,找到摘要区域,手动删掉am/pm之后的内容就行。虽然笨了点,但最稳妥,不会出错。

2. 用插件批量处理(非技术友好)

推荐用Search Regex插件,它支持正则表达式批量搜索替换内容,操作起来很方便:

  • 先在后台安装并激活这个插件;
  • 进入「工具」→「Search Regex」页面;
  • 在「Search」框里输入正则:(\d{1,2}:\d{2} [ap]m).*,「Replace」框里输入$1;
  • 选择要搜索的范围:比如勾选「Post Excerpts」(如果你的摘要存在文章摘要字段),或者选择「Post Content」并指定目标元素的内容;
  • 先点击「Preview」预览替换效果,确认没问题后再点击「Replace」执行替换。

注意:替换前最好备份一下数据库,避免意外情况。

3. 自定义代码实现(适合有技术基础的用户)

前端JS(仅修改显示效果,不改动数据库)

如果不想修改数据库里的原始内容,只是想在前端显示的时候去掉摘要,可以在主题的functions.php里添加这段代码,或者用自定义HTML区块插入脚本:

document.addEventListener('DOMContentLoaded', function() {
  // 找到所有摘要元素
  const excerptParas = document.querySelectorAll('.entry-excerpt p');
  excerptParas.forEach(para => {
    // 用正则替换掉am/pm之后的所有内容
    para.textContent = para.textContent.replace(/(\d{1,2}:\d{2} [ap]m).*/i, '$1');
  });
});

这段代码会在页面加载完成后,自动处理所有.entry-excerpt下的段落文本,只保留到am/pm为止的内容。

后端PHP(永久修改数据库内容)

如果想彻底把数据库里的摘要改成只保留到时间部分,可以在functions.php里添加这段函数:

function trim_excerpt_to_time() {
  global $wpdb;
  // 查询所有已发布的文章
  $posts = $wpdb->get_results("SELECT ID, post_excerpt FROM {$wpdb->posts} WHERE post_type = 'post' AND post_status = 'publish'");
  
  foreach ($posts as $post) {
    // 用正则截取到am/pm为止的内容
    $trimmed_excerpt = preg_replace('/(\d{1,2}:\d{2} [ap]m).*/i', '$1', $post->post_excerpt);
    // 如果内容有变化,就更新文章摘要
    if ($trimmed_excerpt !== $post->post_excerpt) {
      wp_update_post([
        'ID' => $post->ID,
        'post_excerpt' => $trimmed_excerpt
      ]);
    }
  }
}
// 执行一次后立刻注释掉这行,避免重复执行!
// trim_excerpt_to_time();

重要提醒:执行前一定要备份数据库,运行一次后记得把trim_excerpt_to_time();这行注释掉,不然每次加载页面都会重复执行。如果你的摘要存在自定义字段里,需要修改SQL查询的表和字段哦。

4. WP CLI命令行(适合熟悉命令行的用户)

如果你有服务器命令行权限,用WP CLI可以快速批量处理:

# 先预览效果,不会实际修改
wp post list --post_type=post --post_status=publish --format=ids | xargs -I {} wp post update {} --post_excerpt="$(wp post get {} --field=post_excerpt | sed -E 's/([0-9]{1,2}:[0-9]{2} [ap]m).*/\1/i')" --dry-run

# 确认预览没问题后,去掉--dry-run执行实际修改
wp post list --post_type=post --post_status=publish --format=ids | xargs -I {} wp post update {} --post_excerpt="$(wp post get {} --field=post_excerpt | sed -E 's/([0-9]{1,2}:[0-9]{2} [ap]m).*/\1/i')"

同样,执行前记得备份数据库哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:49:31