dede文章标题如何添加随机值?

99ANYc3cd6
预计阅读时长 15 分钟
位置: 首页 DEDE建站 正文

使用DedeCMS自带函数 mt_rand() (最简单)

这是最直接的方法,适用于在标题中插入一个简单的随机数字。

dede文章标题添加随机值
(图片来源网络,侵删)

适用场景末尾或开头添加一个随机数,新闻标题123”、“产品名称456”。

操作步骤

  1. 登录后台:登录您的DedeCMS后台。

  2. 找到文件:进入后台目录 dede/,找到并编辑 templets/article_add.htm 文件,这个文件是“增加文章”页面的模板。

    dede文章标题添加随机值
    (图片来源网络,侵删)
    • 注意:如果您希望这个功能在所有发布文章的地方都生效,您可能需要修改多个模板文件,article_edit.htm (编辑文章) 等,但通常修改 article_add.htm 就足够了。
  3. 修改代码: 在 article_add.htm 文件中,找到文章标题的输入框代码,它通常是这样的:

    <input type="text" name="title" id="title" value="{dede:field.title/}" class="alltxt" style="width:500px" />

    您可以将其修改为在 value 属性中调用PHP函数,在标题后添加一个3位数的随机数:

    <input type="text" name="title" id="title" value="{dede:field.title/}_{dede:php}echo mt_rand(100, 999);{/dede:php}" class="alltxt" style="width:500px" />
  4. 保存并测试: 保存修改后的文件,当您进入“增加文章”页面时,标题输入框会自动显示类似“原始标题_123”这样的内容,您可以在此基础上进行修改。

代码解析

dede文章标题添加随机值
(图片来源网络,侵删)
  • {dede:field.title/}:这是DedeCMS的默认标签,用于显示文章标题。
  • _:这是连接符,您可以根据需要修改,比如改成 或 空格
  • {dede:php}...{/dede:php}:这是DedeCMS的PHP执行标签,允许在其中写PHP代码。
  • mt_rand(100, 999):PHP函数,用于生成一个介于100和999之间的随机整数,您可以根据需要调整范围,mt_rand(1, 100) 生成1-100的随机数。

使用自定义函数 my_randtitle() (更灵活)

当您需要更复杂的随机逻辑时(例如从一组词语中随机选择),创建一个自定义函数是最佳选择。

适用场景:从预设的词库中随机抽取词语,组合成新的标题,[评测]最新手机”、“[资讯]热门手机”、“[导购]性价比手机”。

操作步骤

  1. 创建自定义函数文件: 在您的网站根目录下找到 include/extend.func.php 文件,如果这个文件不存在,请手动创建一个,这个文件专门用来存放自定义的函数。

  2. 添加函数代码: 在 extend.func.php 文件中,添加以下PHP代码:

    /**
     * 生成带随机词的标题
     * @param string $original_title 原始标题
     * @return string 组合后的新标题
     */
    function my_randtitle($original_title) {
        // 1. 定义一个随机词数组
        $rand_words = array(
            '最新', '热门', '精选', '深度', '独家',
            '评测', '资讯', '导购', '盘点', '揭秘'
        );
        // 2. 从数组中随机抽取一个词
        $random_word = $rand_words[array_rand($rand_words)];
        // 3. 组合成新标题,格式:[随机词] 原始标题
        $new_title = '[' . $random_word . ']' . $original_title;
        return $new_title;
    }
  3. 修改模板文件: 回到 dede/templets/article_add.htm 文件,找到标题输入框,将其修改为调用我们刚刚创建的函数:

    <input type="text" name="title" id="title" value="{dede:php}echo my_randtitle(@me);{/dede:php}" class="alltxt" style="width:500px" />
  4. 保存并测试: 保存文件,每次打开添加文章页面,标题都会自动生成类似“[最新]原始标题”或“[评测]原始标题”这样的随机标题。

代码解析

  • function my_randtitle($original_title):定义了一个名为 my_randtitle 的函数,它接收一个原始标题作为参数。
  • $rand_words = array(...):创建了一个PHP数组,存放了所有可能的随机词语。
  • array_rand($rand_words):从数组中随机获取一个键。
  • $random_word = $rand_words[...]:根据随机键获取对应的词语值。
  • return $new_title;:返回组合好的新标题。
  • {dede:php}echo my_randtitle(@me);{/dede:php}:在模板中调用此函数。@me 在这里代表 {dede:field.title/} 的值,即原始标题。

通过JS实现前端随机 (用户体验更好)

这种方法不会真正改变标题的默认值,而是在用户打开页面时动态显示一个随机值,让用户感觉更“智能”,用户仍可自由编辑。

适用场景:提升用户体验,给用户一个灵感,但不强制使用。

操作步骤

  1. 修改模板文件: 同样是修改 dede/templets/article_add.htm输入框,保留其原始 value 属性,然后添加 onfocus 事件来触发JS函数。

    <input type="text" name="title" id="title" value="{dede:field.title/}" class="alltxt" style="width:500px" onfocus="this.value=this.value+'_'+getRandomInt(100, 999);" />
  2. 添加JS代码: 在 article_add.htm 文件的 <head> 标签内,或者在页面底部的 <body> 结束标签 </body> 之前,添加以下JavaScript代码:

    <script type="text/javascript">
    // 生成指定范围的随机整数
    function getRandomInt(min, max) {
        return Math.floor(Math.random() * (max - min + 1)) + min;
    }
    </script>
  3. 保存并测试: 保存文件,当您点击标题输入框时,它会在原有标题后面自动添加一个随机数,如果您不想要,可以手动删除。


总结与建议

方法 优点 缺点 适用场景
mt_rand() 简单、快速,无需额外文件 功能单一,只能生成数字 快速添加随机数字,如ID、版本号等
自定义函数 功能强大、灵活,可定制复杂的随机逻辑 需要修改 extend.func.php 文件,对新手稍复杂 生成伪原创标题、A/B测试标题、SEO优化
JS实现 用户体验好,不干扰原始数据,可随时修改 功能受限于JS,数据不是真正“随机” 作为辅助工具,给用户提供灵感,不强加

强烈推荐使用方法二,因为它最灵活、最强大,也最符合DedeCMS的扩展机制,一旦函数写好,您就可以在模板的任何地方 {dede:php}echo my_randtitle(@me);{/dede:php} 来调用,非常方便。

重要提示:在进行任何文件修改之前,请务必备份原始文件,以防操作失误导致网站出现问题。

-- 展开阅读全文 --
头像
dede如何调用当前子栏目名称?
« 上一篇 02-13
C语言do-while循环和while循环有何区别?
下一篇 » 02-13

相关文章

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

目录[+]