我在这里读到了这篇文章a filter for changing MediaElement.js settings in WordPress, 我希望做一些类似的事情,只是我不需要针对所有MediaElement.js
脚本,仅wp-playlist.js
(而且可能wp-playlist.min.js
).
原因是我想add a download link to audio files in a WordPress playlist 虽然keeping it on the same row as the title and file duration. 我遵循了前一个线程中的步骤,并成功地获得了相同的结果。然而,答案是birgire 包括进一步定制的建议,其中他表示:
您还可以考虑将自己版本的wp-playlist.js
替换的文件:
\'click .wp-playlist-item\' : \'clickTrack\',
例如:
\'click a.wp-playlist-item-caption\' : \'clickTrack\',
能够将下载链接与歌曲标题放在同一行中。
不幸的是,我不是编码专家,我尝试将wp-playlist.js
文件最终(1)要么没有影响,要么(有时)(2)破坏了播放列表,要么(3)破坏了整个网站。
我确实考虑过在播放列表模板中使用css代码,但发现这很麻烦。它会工作的,需要时间、尝试和错误,我并不是说它不值得花费时间和精力,但是(尽管我的经验有限),我觉得必须有一个非常简单的过滤器或函数才能达到同样的结果。
所以,我的问题是:核心wp播放列表是否可以。是否可以使用过滤器在子模板或插件中修改js事件?如果是,如何进行?
And specifically, can the css class in this event \'click .wp-playlist-item\' : \'clickTrack\',
be modified with a filter? If yes, please outline how.
感谢您的时间和耐心。
最合适的回答,由SO网友:jsmod 整理而成
Update:我在发帖几小时后找到了一个超级简单的问题解决方案。事实证明,根本不需要过滤器。
正在添加onclick=\'event.stopPropagation();\'
下载链接是所有需要的。它允许将下载链接放在同一标题行上,而不会影响单击标题时更改曲目的能力。
这意味着custom playlist offered by birgire 可以进行修改,使链接如下所示:
<!-- BEGIN CHANGES -->
<a href="{{ data.src }}" class="wpse-download" download="" onclick=\'event.stopPropagation();\'>Download</a>
<!-- END CHANGES -->
现在它可以安全地放置在
div.wp-playlist-item
选择器(并且所有内容都可以根据首选项设置样式)。点击
Download 将触发下载,单击曲目标题将启动播放器(按预期操作)。无需过滤器或js排队
wp-playlist.js
不需要干扰文件!:)