2017-06-26 21 views
0

以下のコードは、カスタム投稿を作成し、メタの詳細を追加しています。このコードでは、サイトルートのアップロードフォルダに画像をアップロードしてダンプしています。私はforeach引数を作成して、画像ファイルのパスを次のカスタムフィールドにテキスト文字列として送信しています:image_1、image_2、image_3、image_4。フロントエンド画像をアップロードする

  <?php 

      if(isset($_POST['url']) && $_POST['url'] == ''){ 

       require('../wp-load.php'); 

       $a = $_POST['a']; 
       $b = $_POST['b']; 
       $c = $_POST['c']; 
       $d = $_POST['d']; 
       $e = $_POST['e']; 

       include('../src/class.fileuploader.php'); 

       $FileUploader = new FileUploader('files', array(
        'uploadDir' => '../uploads/', 
        'title' => 'name' 
       )); 

       $data = $FileUploader->upload(); 

       if($data['isSuccess'] && count($data['files']) > 0) { 

        $uploadedFiles = $data['files']; 
       } 
       if($data['hasWarnings']) { 
        $warnings = $data['warnings']; 

        echo '<pre>'; 
        print_r($warnings); 
        echo '</pre>'; 
        exit; 
       } 

       foreach($FileUploader->getRemovedFiles('file') as $key=>$value) { 
        unlink('../uploads/' . $value['name']); 
       } 

       $my_post = array(
        'ID' => '', 
        'post_title' => wp_strip_all_tags($_POST['a']), 
        'post_content' => $_POST['d'], 
        'post_status' => 'draft', 
        'post_type'  => 'custompost' 
       ); 

       $post_id = wp_insert_post($my_post); 


       add_post_meta($post_id, 'b', $b, true); 
       add_post_meta($post_id, 'c', $c, true); 
       add_post_meta($post_id, 'e', $e, true); 
       add_post_meta($post_id, 'image_1', $image_1, true); 
       add_post_meta($post_id, 'image_2', $image_2, true); 
       add_post_meta($post_id, 'image_3', $image_3, true); 
       add_post_meta($post_id, 'image_4', $image_4, true); 

      header('Location: http://www.example.com/thank-you/'); 

      } else { 

      header('Location: http://www.example.com/thank-you/'); 

      } 

      ?> 
+0

[Wordpressでのフロントエンドメディアのアップロード](https://stackoverflow.com/questions/9160979/front-end-media-uploading-in-wordpress)の可能な複製 – Und3rTow

答えて

0
if(isset($_POST['pj'])){ 
     global $wpdb; 
      $files = $_FILES['upload_attachment']; 
      foreach ($files['name'] as $key => $value) { 
       if (! function_exists('wp_handle_upload')) { 
        require_once(ABSPATH . 'wp-admin/includes/file.php'); 
       } 
        if ($files['name'][$key]) { 
         $file = array(
          'name'  => $files['name'][$key], 
          'type'  => $files['type'][$key], 
          'tmp_name' => $files['tmp_name'][$key], 
          'error' => $files['error'][$key], 
          'size'  => $files['size'][$key] 
         ); 

         $upload_overrides = array('test_form' => false); 
         $movefile = wp_handle_upload($file, $upload_overrides); 
         if ($movefile && !isset($movefile['error'])) { 
           //echo $movefile['url']; 
add_post_meta($postid , 'images' , $movefile['url']); 
         } 

        } 
      } 


    } 

あなたの入力タイプのファイル名から 'upload_attachment' を交換してください。

$ files = $ _FILES ['upload_attachment'];

、あなたは私がページのjQueryの一部でこれを解決するために管理し、このコード

0

を使用して、ポストメタにあなたのイメージをアップロードすることができます。あなたの助けをありがとう。

関連する問題