织梦dedecms文章如何实现拼音命名?

99ANYc3cd6
预计阅读时长 19 分钟
位置: 首页 织梦建站 正文

下面我将为您提供三种实现方法,从最推荐、最安全插件法,到灵活但需谨慎手动修改法,再到一劳永逸二次开发法

织梦dedecms文章拼音命名
(图片来源网络,侵删)

使用插件(最推荐,安全、简单)

这是最简单、最安全的方法,无需修改核心文件,升级DedeCMS也不会失效。

推荐插件:DedeCMS拼音标题生成插件

您可以在DedeCMS官方论坛、一些DedeCMS资源网站(如织梦58、DedeCms吧等)搜索下载。

使用步骤:

织梦dedecms文章拼音命名
(图片来源网络,侵删)
  1. 下载插件:从可靠的来源下载插件包,通常是一个ZIP压缩文件。
  2. 上传安装
    • 解压插件包。
    • 将文件夹内的内容,按照说明上传到您的DedeCMS网站根目录的对应位置(/dede/目录下的插件文件夹)。
    • 插件会提供一个安装脚本(如 install.php)或是一个SQL文件,如果提供安装脚本,访问 http://您的网站/dede/插件文件夹名/install.php 来执行安装,如果是SQL文件,请登录您的网站后台,进入“系统” -> “SQL命令行工具”,执行SQL文件中的内容。
  3. 使用插件
    • 安装成功后,您会在DedeCMS后台的某个菜单(可能是“内容”或“系统”相关菜单)中找到“拼音标题生成”或类似的功能入口。
    • 进入该功能,通常可以选择对“单篇文章”、“指定栏目”或“全站文章”进行拼音生成。
    • 在生成时,您还可以设置一些选项,
      • 分隔符:是使用 (连字符) 还是 _ (下划线)。
      • 是否大小写:是生成小写还是首字母大写。
      • 是否去除特殊字符:是否忽略标题中的空格、标点等。

优点

  • 安全:不修改核心程序,升级无忧。
  • 简单:有图形界面,操作直观。
  • 批量处理:通常支持批量生成,效率高。

手动修改代码(灵活但有风险)

如果您不想使用插件,或者找不到合适的插件,可以手动修改代码。请务必在修改前备份您的网站文件和数据库!

核心思路:在发布文章的页面,增加一个“生成拼音标题”的按钮,点击后调用一个拼音转换函数,将中文标题转换成拼音并填充到 pinyin 字段。

操作步骤:

织梦dedecms文章拼音命名
(图片来源网络,侵删)

第1步:修改文章发布模板

  1. 找到文件:/dede/templets/article_add.htm (用于新增文章) 和 /dede/templets/article_edit.htm (用于编辑文章),输入框(title)旁边,添加一个按钮,在 article_add.htm 中找到类似这样的代码:

    <td class="bline"> <div style='float:left;'>标题:</div>
      <div style='float:left;'>
        <input name="title" type="text" id="title" value="" style="width:380px" class="alltxt" />
      </div>
      <div style='float:left;'>&nbsp;</div>
    </td>
  2. <div style='float:left;'>&nbsp;</div> 处,修改为:

    <div style='float:left;'>
        <input type="button" name="pinyin_btn" id="pinyin_btn" value="生成拼音标题" class="np coolbg" />
    </div>

第2步:引入拼音转换库

我们需要一个JavaScript的拼音库,这里推荐使用 pinyin-pro,它功能强大且准确。

  1. 下载库文件:从 pinyin-pro的GitHub Releases 页面下载 pinyin-pro.min.js 文件。

  2. 上传到网站:将 pinyin-pro.min.js 上传到您的网站,/dede/js/ 目录下。

  3. 在模板中引入:在 article_add.htmarticle_edit.htm<head> 部分添加引入代码:

    <script type="text/javascript" src="/dede/js/pinyin-pro.min.js"></script>

第3步:编写JS点击事件

article_add.htmarticle_edit.htm 文件的底部,<body> 标签结束前,添加以下JavaScript代码:

<script type="text/javascript">
document.getElementById('pinyin_btn').onclick = function() {
    // 获取标题输入框的值
    var title = document.getElementById('title').value;
    if (!title) {
        alert('请先输入文章标题!');
        return;
    }
    // 调用pinyin-pro库进行转换
    // mode: 'pure' 纯拼音模式,toneType: 'none' 不带声调,separator: '-' 用连字符分隔
    pinyin.pro(title, {
        mode: 'pure',
        toneType: 'none',
        separator: '-'
    }).then(pinyin => {
        // 将转换后的拼音值填入到pinyin输入框
        // 注意:如果您的表单中还没有pinyin输入框,需要先创建它
        document.getElementById('pinyin').value = pinyin.toLowerCase(); // 转为小写
    });
};
</script>

第4步:确保表单中有 pinyin 字段

  1. article_add.htmarticle_edit.htm 文件中,找到 <form> 标签,确保它包含 pinyin 字段,通常它已经存在,但可能是隐藏的,找到类似这样的代码:

    <input name="pinyin" type="hidden" id="pinyin" value="" />
  2. 如果它不存在,请手动添加,为了方便调试,你可以先将其设为可见(去掉 type="hidden"),确认功能正常后再隐藏。

完成以上步骤后,您在后台发布或编辑文章时,输入标题,点击“生成拼音标题”按钮,拼音就会自动填充到 pinyin 字段中。

优点

  • 灵活:可以完全自定义按钮样式和转换逻辑。
  • 无依赖:不依赖第三方插件。

缺点

  • 有风险:修改了核心模板文件,DedeCMS升级后可能会被覆盖,需要重新修改。
  • 需要JS知识:对不熟悉JavaScript的用户有一定门槛。

二次开发(一劳永逸,适合开发者)

如果您是开发者,并且希望这个功能是系统内置的,可以进行二次开发,这需要对DedeCMS的底层架构有更深入的了解。

核心思路:修改文章保存的底层逻辑,在文章入库前,自动调用拼音转换函数生成 pinyin 字段。

操作步骤(简化版):

  1. 找到核心处理文件:文章入库的核心逻辑通常在 /dede/article_add.php (新增) 和 /dede/article_edit.php (编辑) 中。

  2. 在保存数据前添加转换逻辑:在这些文件中,找到处理 $_POST 数据并插入/更新数据库的代码段之前,添加拼音转换的PHP代码。

  3. 使用PHP拼音库:你需要一个PHP的拼音库,推荐使用 overtrue/pinyin

    • 安装库:通过Composer安装 composer require overtrue/pinyin
    • 编写转换代码:在 article_add.php 中,类似这样添加:
    // 引入自动加载器 (确保你的项目已经配置了Composer的autoload)
    require_once __DIR__ . '/../vendor/autoload.php';
    use Overtrue\Pinyin\Pinyin;
    // ... 获取表单数据的代码 ...
    $title = $_POST['title'];
    $pinyin = '';
    if (!empty($title)) {
        $pinyin_obj = new Pinyin();
        // 转换为不带声调的拼音,并用连字符连接
        $pinyin = $pinyin_obj->permalink($title, '-');
        // 或者转为纯拼音不带分隔符
        // $pinyin = $pinyin_obj->abbr($title); // 首字母
        // $pinyin = $pinyin_obj->sentence($title); // 全拼不带分隔符
    }
    // 将 $pinyin 值添加到要插入数据库的数据数组中
    $arcQuery = "INSERT INTO dede_archives (..., pinyin, ...) VALUES (..., '$pinyin', ...)";
    // ... 后续的数据库操作 ...
  4. 处理编辑页面:同样地,在 article_edit.php 中也加入相同的逻辑,确保编辑文章时也能更新 pinyin 字段。

优点

  • 无缝集成:功能完全融入系统,用户体验最好。
  • 自动化:无需用户手动点击,完全自动处理。

缺点

  • 技术门槛高:需要PHP和DedeCMS架构知识。
  • 维护复杂:升级DedeCMS后,代码冲突和兼容性问题需要自己解决。

总结与建议

方法 优点 缺点 推荐人群
插件法 安全、简单、批量处理 依赖第三方插件,可能功能受限 所有用户,特别是新手和不想折腾的用户
手动修改法 灵活、无插件依赖 有覆盖风险,需要JS知识 有一定基础,想自定义功能的用户
二次开发法 无缝集成、完全自动化 技术门槛高,维护复杂 开发者,或对系统有深度定制的需求

对于绝大多数用户,强烈推荐使用方法一(插件法),它以最小的风险和精力解决了问题,如果您有开发能力且追求极致体验,可以考虑方法三,方法二则是一个不错的折中选择。

-- 展开阅读全文 --
头像
织梦uploads路径如何自定义指定?
« 上一篇 今天
织梦mytag js.php漏洞如何修复?
下一篇 » 今天

相关文章

取消
微信二维码
支付宝二维码

目录[+]