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

Drupal7 Bulk Media Upload模块:移除节点标题中的.jpg后缀

解决Drupal7 Bulk Media Upload模块节点标题的.jpg后缀问题

方案1:通过自定义模块钩子修改标题

在你的自定义模块中添加以下代码,利用节点保存前的钩子自动移除标题后缀:

/**
 * Implements hook_node_presave().
 */
function YOUR_CUSTOM_MODULE_node_presave($node) {
  // 替换为你实际使用的媒体内容类型(比如image、media)
  if ($node->type == 'image') {
    // 移除标题末尾的.jpg后缀(不区分大小写)
    $node->title = preg_replace('/\.jpg$/i', '', $node->title);
    // 如需兼容.jpeg后缀,可改为:
    // $node->title = preg_replace('/\.(jpg|jpeg)$/i', '', $node->title);
  }
}

注意替换YOUR_CUSTOM_MODULE为你的自定义模块名称,确保钩子能正常触发。

方案2:直接修改模块的标题生成逻辑

找到Bulk Media Upload模块中处理上传文件、生成节点标题的代码段(通常在文件上传处理函数内),将原标题赋值代码:

$node->title = $file->filename;

替换为去掉后缀的版本:

// 提取不带后缀的文件名作为标题
$node->title = pathinfo($file->filename, PATHINFO_FILENAME);

如果需要兼容多种图片后缀,这个方法会自动适配,无需额外调整。

你之前正则无效的常见原因

  • 正则未匹配末尾后缀:比如只写了/\.jpg/,缺少$锚定符,会匹配标题中所有.jpg字符而非末尾后缀
  • 未区分大小写:没有加i修饰符,导致.JPG这类大写后缀无法被匹配
  • 钩子触发条件错误:节点类型判断不准确,或者自定义模块的钩子名称拼写错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 03:57:35