2016-11-18 28 views
1

WordPressでカスタム投稿タイプを作成しましたが、カスタム投稿タイプに固有のアップロードディレクトリを指定でき、メディアライブラリにメディアのみを表示してメディアを挿入するとカスタム投稿タイプの特定のディレクトリにアップロードされます。画像の保存カスタム投稿タイプ特定メディア - WordPress

で、メディアライブラリのみでメディアを示しています。私はしかし私だけ実行したい探しているコンテンツをフィルタリングします、次のコードを持っている

/wp-content/uplodas/custom_post_type/ 

UPDATE

フィルタは、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

カスタムポストタイプ宣言の発生時にこのコードを追加すると、カスタムポストタイプのアップロードディレクトリが作成されます。投稿タイプがあなたのものである投稿からアップロードが行われるたびに、このフォルダも使用されます。 librairyフィルタ用

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'); 

、IVEはショートに基づいてメディアアイテムをフィルタリングする方法を持っていた過去のプラグインを使用し、しかし、私は、現在のポストタイプに基づいて、それがフィルタリングを取得するために何をすべきかバットを知っているのwouldntバックエンドで申し訳ありません

関連する問題