如何在discord.py的Embed中添加多个URL并将每个video_title行转为对应URL的超链接?
解决Discord.py Embed的两个URL相关问题
嘿,我来帮你搞定这两个Embed的问题,核心都是利用Discord支持的Markdown语法来实现的,咱们一步步来:
1. 如何在Embed中添加多个URL?
Discord的Embed组件支持在**描述(description)或者字段(fields)**中使用Markdown格式的链接,你可以在同一个文本块里放置多个链接,只要遵循[显示文本](链接地址)的格式就行。针对你的列表场景,把每个视频标题和对应URL做成链接列表是最适配的方案。
2. 让每一行的video_title成为对应URL的可点击超链接
你现在的代码只是把纯文本标题简单拼接,自然没有链接效果。只需要把每个video_titleX替换成Markdown链接格式,就能让标题变成可点击的超链接了。
修改后的完整代码示例
import discord import datetime # 假设你已经定义了video_title1~10和url1~10这些变量 embed = discord.Embed(title="", description=( f"`1.` [{video_title1}]({url1})\n" f"`2.` [{video_title2}]({url2})\n" f"`3.` [{video_title3}]({url3})\n" f"`4.` [{video_title4}]({url4})\n" f"`5.` [{video_title5}]({url5})\n" f"`6.` [{video_title6}]({url6})\n" f"`7.` [{video_title7}]({url7})\n" f"`8.` [{video_title8}]({url8})\n" f"`9.` [{video_title9}]({url9})\n" f"`10.` [{video_title10}]({url10})\n" ), color=9699539) embed.timestamp = datetime.datetime.utcnow() embed.set_footer(text=f"{ctx.message.author.name}", icon_url="https://i.pinimg.com/originals/26/c8/03/26c8038be8ac9ac7594bb23a03c5c8be.jpg") await ctx.channel.send(embed=embed)
关键说明
- 用
f-string拼接链接格式更简洁易读,替代了原来繁琐的字符串相加方式。 - 每个标题都用
[{video_titleX}]({urlX})包裹,Discord会自动渲染成可点击的超链接。 - 保留原来的
\n换行符,让列表每行独立显示,和你期望的效果完全匹配。
这样修改后,Embed里的每个视频标题都会变成对应URL的可点击链接,完美实现你想要的展示效果~
内容的提问来源于stack exchange,提问作者Halloween726
相关产品推荐
相关产品推荐

