2016-08-30 8 views
1
require_once(ABSPATH . '/wp-load.php'); 
          require_once(ABSPATH . '/wp-admin/includes/file.php'); 
          require_once(ABSPATH . '/wp-admin/includes/image.php'); 

          $upload_overrides = array('test_form' => FALSE); 
          $count_files = count($_FILES['my_files']); 
          $uploads = wp_upload_dir(); 
          foreach (range(0, $count_files) as $i) { 

           // create an array of the $_FILES for each file 
           $file_array = array(
            'name'  => $_FILES['files']['name'][$i], 
            'type'  => $_FILES['files']['type'][$i], 
            'tmp_name' => $_FILES['files']['tmp_name'][$i], 
            'error' => $_FILES['files']['error'][$i], 
            'size'  => $_FILES['files']['size'][$i], 
           ); 

           // check to see if the file name is not empty 
           if (!empty($file_array['name'])) { 

            // upload the file to the server 
            $uploaded_file = wp_handle_upload($file_array, $upload_overrides); 

            // checks the file type and stores in in a variable 
            $wp_filetype = wp_check_filetype(basename($uploaded_file['file']), null); 
            if ($uploaded_file && !isset($uploaded_file['error'])) { 
               $ufiles = get_post_meta($post_id, 'my_files', true); 
               if(empty($ufiles)) $ufiles = array(); 
               $ufiles[] = $uploaded_file; 
               update_post_meta($post_id, 'my_files', $ufiles); 

            } 
           } 
          } 

このコードのおかげで、メタボックスにファイルをダウンロードすることができます。Wordpressメタボックスでダウンロードした画像をファイルで削除する

データベースの出力があるが私は私が私の更新ページ上のチェックボックスを選択していながら、私はdelete_post_meta方法といけない画像を削除したい

以下
a:2:{i:0;a:3:{s:4:"file";s:48:"D:xampphtdocswp/wp-content/uploads/2016/08/2.jpg";s:3:"url";s:52:"http://localhost/wp/wp-content/uploads/2016/08/2.jpg";s:4:"type";s:10:"image/jpeg";}i:1;a:3:{s:4:"file";s:59:"D:xampphtdocswp/wp-content/uploads/2016/08/2da83a4s-960.jpg";s:3:"url";s:63:"http://localhost/wp/wp-content/uploads/2016/08/2da83a4s-960.jpg";s:4:"type";s:10:"image/jpeg";}} 

に表示するもののように見えます。

      $galleri = get_post_meta($id,'my_files',true); 



<div class="galeri"> 

    <?php 
    foreach($galleri as $galeri){ 

echo "<div style='margin:10px;display:inline-block;'><input type='checkbox' name='car_image_delete[]' value='".$galeri['url']."' /><img src='".$galeri['url']."' width='150' height='150'/></div>"; 
             } 


            ?> 
           </div> 

あなたは私

答えて

0

はこれを試してみてください助け場合、私は感謝:

使用update_post_meta()機能の代わりdelete_post_meta()

delete_post_meta()を使用している間、それはカスタムフィールドを削除します。

特定の1つのファイルを削除したい場合。 update_post_meta()を使用する必要があります。

$string = 'a:2:{i:0;a:3:{s:4:"file";s:48:"D:xampphtdocswp/wp-content/uploads/2016/08/2.jpg";s:3:"url";s:52:"http://localhost/wp/wp-content/uploads/2016/08/2.jpg";s:4:"type";s:10:"image/jpeg";}i:1;a:3:{s:4:"file";s:59:"D:xampphtdocswp/wp-content/uploads/2016/08/2da83a4s-960.jpg";s:3:"url";s:63:"http://localhost/wp/wp-content/uploads/2016/08/2da83a4s-960.jpg";s:4:"type";s:10:"image/jpeg";}}'; 
$arr = unserialize($string); //USE get_post_meta() function instead of 
$index = array_search('http://localhost/wp/wp-content/uploads/2016/08/2da83a4s-960.jpg',array_column($arr, 'url')); //search index 
echo $index; 
if (array_key_exists($index,$arr)) 
{ 
    unset($arr[$index]); //remove array index 
} 
print_r($arr); //array with only value. 
//use array_values() to reindex 
update_post_meta($post_id, 'my_files', $arr); //update post meta 
+0

警告:\ XAMPP \ htdocsに\ WP \ WP-コンテンツ\テーマ\ snarent \ page_edit.php線上147 警告:array_column(アンシリアライズ()は、パラメータ1がDで与えられた文字列、配列ことを期待します\ XAMPP \ htdocsに\ WP \ WP-コンテンツ\テーマ\ snarent \ page_edit.php線上148 警告:)パラメータ1がDで指定された配列、ブール値であることが期待array_search()パラメータ2が配列であることを期待し、ヌル所与Dで:\ XAMPP \ htdocsに\ WP \ WP-コンテンツ\テーマ\ snarent \ page_edit.php線上148 警告:array_key_exists()パラメータ2はDで指定された配列、ブール値であることを期待:\ XAMPP \ htdocsに\ WP \ wp-content \ themes \ snarent \ page_edit.php on line 150 –

+0

あなたはありますか? $ stringの値または別の値を追加しましたか? @MUNLU – vrajesh

+0

$ metatable = $ wpdb->接頭辞。"postmeta"; \t \t \t \t \t \t \t \t \t $文字列= $ wpdb-> get_var($ wpdb->(調製は、$ ID) "$メタテーブルここpost_idの=%dとmeta_key = 'my_files' からmeta_value選択")。 \t \t \t \t \t \t \t \t \t $編曲=アンシリアライズ($文字列); //のUSE get_post_meta()関数の代わりに \t \t \t \t \t \t \t \t \t $インデックス= array_search($ [0]、array_column($ ARR、 'URL')をcar_image_delete)。 //検索インデックス \t \t \t \t \t \t \t \t \tエコー$インデックス。 \t \t \t \t \t \t \t \t \t場合(array_key_exists($インデックスは、$ ARR)) \t \t \t \t \t \t \t \t \t { \t \t \t \t \t \t \t \t \t \t解除($のARR [$インデックス]); //配列インデックス \t \t \t \t \t \t \t \t \t} –

関連する問題