上传视频文件时创建自定义清理功能时出现问题

时间:2014-05-13 作者:Jody Heavener

我正在尝试在Wordpress中创建一个主题定制器控件,允许用户上载MP4和WEBM视频,在这样做时,我需要创建一个清理选项来验证文件类型。我遇到了一些麻烦,仍然可以上传任何类型的文件。。。

下面是我正在做的:

function customizer_header_image( $wp_customize ) {

  // Header Background Video (MP4)
  $wp_customize->add_setting( \'header_video_mp4\', array(
    \'default\'             => \'\',
    \'sanitize_callback\'   => \'check_header_video\'
  ) );

  $wp_customize->add_control(
    new WP_Customize_Upload_Control( $wp_customize, \'header_video_mp4_control\', array(
      \'label\'             => __( \'Header Video (MP4)\', \'rainier\' ),
      \'section\'           => \'header_image\',
      \'settings\'          => \'header_video_mp4\',
    ) )
  );

}

// Register the customize functions
add_action( \'customize_register\', \'customizer_header_image\' );

// Custom sanitize function for header video uploads
function check_header_video($file){
  return validate_file($file, array(\'webm\', \'mp4\'));
}
正如你所见,我通过了控制\'sanitize_callback\' my的参数check_header_video, 在那里,您可以看到,在该函数中,它针对本机Wordpress函数运行文件validate_file, 具有可接受的文件类型。

运气不太好。有人知道我做错了什么吗?

1 个回复
最合适的回答,由SO网友:TheDeadMedic 整理而成

validate_file 没有按照您预期的方式工作-它会检查$file 位于允许的文件数组中,而不仅仅是其扩展名/mime类型。

你在寻找wp_check_filetype. 然而,最终要做的就是检查扩展名(即,它不读取文件头/否则确定mime类型)。

除非您实现自己的PHP库来进行mime检查,否则会更快;更容易对文件名执行简单的正则表达式检查:

return preg_match( \'/\\.(mpe?g4?|webm)$/\', $file ); // Or similar

结束

相关推荐

How do WP child-themes work?

好的,我已经设置了主主题,现在我创建了一个名为interio\\u child的子主题。从这些instructions 我知道您只需要添加样式。css文件,用于链接到主主题。此外,您还可以添加其他文件来覆盖主主题中的代码。现在我已经激活了我的孩子主题。它只显示“我的子主题”文件夹中的代码,而不显示CSS。这怎么可能?我看过很多教程和wordpress支持主题,但我无法将这个儿童主题链接到我的主主题。这些是我的孩子主题风格的内容。css:/* Theme Name: Interio Child&#x