如何防止用户两次将同一文件上载WordPress

时间:2018-09-06 05:33:10

标签: php wordpress wordpress-theming

在我的WordPress网站中,用户两次上传相同的图像文件并进行了三次处理,因此我的网站的磁盘空间超出了。

是否有阻止用户一次又一次上传同一图像文件的选项??

1 个答案:

答案 0 :(得分:1)

我有同样的问题。我没有添加任何验证,而是在过滤器挂钩后添加了替换图像的过滤器挂钩,如果已经存在具有相同名称的图像。将此代码添加到您的 functions.php 文件

add_filter( 'sanitize_file_name', 'replace_image_if_same_exists', 10, 1 );

function replace_image_if_same_exists( $name ) 
{
  $args = array(
    'numberposts'   => -1,
    'post_type'     => 'attachment',
    'meta_query' => array(
            array( 
                'key' => '_wp_attached_file',
                'value' => $name,
                'compare' => 'LIKE'
            )
        )
  );
  $attachments_to_remove = get_posts( $args );

  foreach( $attachments_to_remove as $attach )
    wp_delete_attachment( $attach->ID, true );

 return $name;
}

希望这对您有所帮助。