处理wp-playlist.js中的ClickTrack事件,以便在播放列表标题行上显示音频下载链接

时间:2019-02-04 作者:jsmod

我在这里读到了这篇文章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.

感谢您的时间和耐心。

1 个回复
最合适的回答,由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 不需要干扰文件!:)

相关推荐

apply_filters to $GLOBALS

我正在使用Pootle页面构建插件构建一个单页网站。使用get\\u page,我在1页上显示每个单独的页面。为了针对Pootle页面生成器内容,我使用以下代码:$content = $GLOBALS[\'Pootle_Page_Builder_Render_Layout\']->panels_render( $page_data->ID ); 当我尝试实现一个像旋转木马这样的插件时,我需要使用一个短代码,但短代码不起作用。为了使短代码有效,我需要使用apply_filters(\'