仅删除音频媒体类型的附件页面

时间:2016-08-26 作者:Jessica Kafor

下面有重定向附件的代码,但对于音频或视频等特定媒体类型又如何呢?

    function sar_attachment_redirect() {  
    global $post;
    if ( is_attachment() && isset($post->post_parent) && is_numeric($post->post_parent) && ($post->post_parent != 0) ) {
        wp_redirect(get_permalink($post->post_parent), 301); // permanent redirect to post/page where image or document was uploaded
        exit;
    } elseif ( is_attachment() && isset($post->post_parent) && is_numeric($post->post_parent) && ($post->post_parent < 1) ) {   // for some reason it doesnt works checking for 0, so checking lower than 1 instead...
        wp_redirect(get_bloginfo(\'wpurl\'), 302); // temp redirect to home for image or document not associated to any post/page
        exit;       
}
}
add_action(\'template_redirect\', \'sar_attachment_redirect\',1);

1 个回复
SO网友:Majid

您必须使用此功能wp_check_filetype 检查您的媒体类型

$filetype = wp_check_filetype(\'image.jpg\');
echo $filetype[\'ext\']; // will output jpg
那么你可以吃这样的东西

$file_url = wp_get_attachment_url( $file_id );
$filetype = wp_check_filetype( $file_url );

switch ($filetype) {
    case \'image/jpeg\':
    case \'image/png\':
    case \'image/gif\':
      return   // do whatever you want 
      break;
    case \'video/mpeg\':
    case \'video/mp4\': 
    case \'video/quicktime\':
      return // do whatever you want 
      break;
    case \'text/csv\':
    case \'text/plain\': 
    case \'text/xml\':
      return // do whatever you want 
      break;
    default:
      return // do whatever you want 
  }
因此,在您的函数中,您可以首先检查附件文件类型,当它是视频时,您可以执行重定向代码。

有关更多信息:

1-https://codex.wordpress.org/Function_Reference/get_post_mime_type

2-https://codex.wordpress.org/Function_Reference/wp_check_filetype

希望对你有用。

相关推荐

如何检测哪个页面加载了ajax_Query_attachments_args?

我试图用分类法隐藏附件。我想在wp admin的帖子页面中隐藏它们。我不知道如何从ajax\\u query\\u attachments\\u args检测我所在的页面。我尝试使用pre\\u get\\u posts,但它似乎不会触发ajax\\u query\\u attachments\\u args。add_filter(\'ajax_query_attachments_args\', \'hide_attachment_with_taxonomy\', 50, 1); f