2016-11-18 43 views
1

我已经在WordPress中创建了自定义帖子类型,但是想知道是否可以指定特定于自定义帖子类型的上传目录,以及何时插入媒体以及媒体库只显示媒体上传到自定义帖子类型的特定目录中。自定义帖子类型特定媒体 - WordPress

保存图像和媒体库只显示在媒体:

/wp-content/uplodas/custom_post_type/ 

UPDATE

我有以下的代码,将过滤的内容我在找,但是我只想跑过滤器if if在client_gallery的CPT上。我的话如果看起来不起作用?

function wpse48677_get_cpt() 
{ 

    if ($_GET['post_type'] == "") { 
     $posts = $_GET['post']; 
     $postType = get_post_type($posts); 
    } else { 
     $postType = $_GET['post_type']; 
    } 

    return $postType; 

} 



    function my_posts_where($where) 
    { 
     global $wpdb; 

     $post_id = false; 
     if (isset($_POST['post_id'])) { 
      $post_id = $_POST['post_id']; 

      $post = get_post($post_id); 
      if ($post) { 
       $where .= $wpdb->prepare(" AND my_post_parent.post_type = %s ", $post->post_type); 
      } 
     } 

     return $where; 
    } 

    function my_posts_join($join) 
    { 
     global $wpdb; 



    $join .= " LEFT JOIN {$wpdb->posts} as my_post_parent ON ({$wpdb->posts}.post_parent = 'client_gallery') "; 

     return $join; 
    } 


    function my_bind_media_uploader_special_filters($query) 
    { 


      add_filter('posts_where', 'my_posts_where'); 
      add_filter('posts_join', 'my_posts_join'); 


     return $query; 
    } 


print wpse48677_get_cpt(); 
if(wpse48677_get_cpt() == 'client_gallery') { 
// THIS IF STATEMENT DOESNT SEEM TO WORK? I KNOW $doJoin == client_gallery 
// AS I CAN SEE IT IF I PRINT IT OUT (see above) 
// IF I RUN THE ADD FILTER WITHOUT THE IF I GET THE RESULTS I"M LOOKING FOR????? 
    add_filter('ajax_query_attachments_args', 'my_bind_media_uploader_special_filters'); 
} 
+0

您可以在上传文件夹内创建文件夹并加载。 –

+0

如何从特定的文件夹加载,只有当即时通讯从自定义文章类型添加或编辑? – knmsuser

回答

2

如果您在自定义帖子类型声明发生的位置添加此代码,您将为您的自定义帖子类型创建上传目录。每当您的上传发生在帖子类型为您的帖子时,这也会使用此文件夹。

function super_upload_dir($args) { 
    if(!isset($_REQUEST['post_id']) || get_post_type($id) != $YOUR_POST_TYPE) 
     return $args; 

    $id = (isset($_REQUEST['post_id']) ? $_REQUEST['post_id'] : ''); 

    if($id) {  
     $newdir = '/' . $DIRECTORY_NAME; 

     $args['path'] = str_replace($args['subdir'], '', $args['path']); 
     $args['url']  = str_replace($args['subdir'], '', $args['url']);  
     $args['subdir'] = $newdir; 
     $args['path'] .= $newdir; 
     $args['url'] .= $newdir; 
    } 
    return $args; 
} 
add_filter('upload_dir', 'super_upload_dir'); 

为librairy过滤器,我已经在有办法筛选基于一个简码媒体项目过去使用的插件,但我不会知道蝙蝠做什么把它过滤基于对当前信息的类型在后端。对不起