自动将视频‘poster’值分配给存档列表的‘filename’

时间:2021-10-07 作者:helpless_fool

我的一个网站被用作与>;在媒体库中上载5000个视频。

每个帖子使用以下短代码,禁用预加载并分配手动海报。如果帖子包含大量视频,这将减少默认预加载=“元数据”的服务器负载和速度。海报是手动上传的。

[video preload="none" mp4="/wp-content/Videos/001.mp4" poster="/wp-content/Pictures/Posters/001.mp4.jpg"][/video]
然而,这对帖子来说非常有效;如果我通过存档中的标签查看视频,它将通过/wp includes/media中的默认设置显示。phpwhich使用标准preload=\'metadata\'。

我的问题是:;是否有办法将默认的“海报”设置为/wp内容/图片/海报//em>文件名。mp4.jpg“;因此,以视频的名称开头加上/wp内容/图片/海报;然后再加上“.”;。jpg?

任何帮助都将不胜感激。

2 个回复
SO网友:helpless_fool

谢谢你的帮助。如果其他人有类似的查询,设法找到临时解决方案。

临时编辑的媒体。php

$filename = basename( wp_get_attachment_url( $attachment_id ) );

    $default_types = wp_get_video_extensions();
    $defaults_atts = array(
        \'src\'      => \'\',
        \'poster\'   => "diary/wp-content/Pictures/posters/".$filename.".jpg\'",
        \'loop\'     => \'\',
        \'autoplay\' => \'\',
        \'preload\'  => \'none\',
        \'width\'    => 640,
        \'height\'   => 360,
        \'class\'    => \'wp-video-shortcode\',
    );
我已经从wp\\u get\\u attachment\\u url()附件中删除了url,并将其直接插入到“poster”属性中。

接下来,我必须找出一种将其作为函数编写的方法,而不是编辑媒体。php每次更新:)

SO网友:birgire

我的问题是:;是否有办法将默认的“海报”设置为/wp内容/图片/海报/文件名。mp4.jpg“;因此,以视频的名称开头加上/wp内容/图片/海报;然后加上“.”;。jpg?

为了避免编辑核心文件,我们可以使用以下过滤器覆盖空视频短码海报属性:

add_filter( \'shortcode_atts_video\', function( $out, $pairs, $atts ){
        // Do nothing for non-empty poster.
        if ( ! empty( $atts[\'poster\'] ) ) {
            return $out;
        }

        // Override empty poster.
        $filename = basename( $atts[\'src\'] );
        if ( ! empty( $filename ) ) {
            $out[\'poster\'] = sprintf( 
               content_url ( \'Pictures/Posters/%s.jpg\' ), // <-- Adjust to your needs!
               $filename 
            ); 
        }

        return $out;
}, 10, 3 );
还可以尝试添加file_exists 检查以确保默认值存在。

相关推荐

从wp.media.editor.附件获取所选图像URL到文本输入失败。我做错了什么?

我已将媒体按钮作为post meta field 在以下情况下将图像URL插入文本字段Insert Into Page 单击按钮。它一直工作到打开“媒体存储库”窗口、选择“图像”和“插入”为止,但没有向输入字段传递任何值。Expected result结果应该是URL和媒体ID插入为https://avalon.com/dev/wp-content/uploads/2021/01/scp7147prko31.jpg|12 但没有返回值。我可以手动输入URL并保存数据。我彻底扫描了我的代码,并尝试了许多ja