পোস্ট জমা দিন এবং সামনের প্রান্ত থেকে চিত্র আপলোড করুন


11

আমি উপরের প্রশ্নের অনুরূপ কিছু করার চেষ্টা করছি। আমি ব্যবহারকারীদের পোস্ট-করা এবং সম্মুখ-প্রান্ত থেকে চিত্রগুলি আপলোড করার চেষ্টা করছি। আমি ইতিমধ্যে পোস্ট ফর্ম এবং এর কাজ সম্পন্ন করেছি।

আমি কেবল রবিন আই নাইট পোস্টের উত্তর-সামনের-প্রান্ত থেকে থাম্বনেল-আপ-পোস্ট করা উত্তরটি অনুসরণ করে চেষ্টা করেছি । দুঃখজনকভাবে আমি এটি কাজ করতে পারি না। আমি পরিবর্তন বা সম্পাদনা করার মতো কিছু আছে বলে মনে করি?

ধন্যবাদ.

উত্তর:


22

আপনি যদি উত্তরটির বিষয়ে কথা বলছেন তবে আমি এখানে পোস্ট করে তার সহজভাবে আপলোডিং ফাইলটি "আইএফএক্স লাইক" জমা দেওয়ার জন্য একটি আইফ্রেমে পোস্ট করতে পারি।

এখন আপনার যদি ইতিমধ্যে এমন একটি ফর্ম থাকে যা পোস্ট জমা দেয় তবে আপনি কেবল নিজের ফর্মের কোনও জায়গায় আপলোড ফাইলের ক্ষেত্র ইনপুট যুক্ত করতে পারেন:

<form ...
...
<input type="file" name="thumbnail" id="thumbnail">
...
...
</form>

আপনার ফর্মটির enctype="multipart/form-data"বৈশিষ্ট্য রয়েছে তা নিশ্চিত করুন ।

তারপরে আপনি পোস্ট তৈরির পরে আপনার ফর্ম প্রসেসিং স্ক্রিপ্টে (ধরে নিচ্ছেন যে আপনি ব্যবহার করছেন তা ধরে নিচ্ছেন wp_insert_post();) পোস্ট আইডিটিকে একটি নতুন ভারে ধরে রাখুন:

$new_post = wp_insert_post($post_array);

এবং এর পরে যুক্ত করুন:

            if (!function_exists('wp_generate_attachment_metadata')){
                require_once(ABSPATH . "wp-admin" . '/includes/image.php');
                require_once(ABSPATH . "wp-admin" . '/includes/file.php');
                require_once(ABSPATH . "wp-admin" . '/includes/media.php');
            }
             if ($_FILES) {
                foreach ($_FILES as $file => $array) {
                    if ($_FILES[$file]['error'] !== UPLOAD_ERR_OK) {
                        return "upload error : " . $_FILES[$file]['error'];
                    }
                    $attach_id = media_handle_upload( $file, $new_post );
                }   
            }
            if ($attach_id > 0){
                //and if you want to set that image as Post  then use:
                update_post_meta($new_post,'_thumbnail_id',$attach_id);
            }

এবং আপনার চিত্র আপলোড হবে এবং পোস্ট থাম্বনেল হিসাবে সংরক্ষণ করা হবে।


আপনাকে ধন্যবাদ @ বেনটারনেট আমি এটি থাম্বনেলটি সন্নিবেশ করানোর জন্য লড়াই করে যাচ্ছিলাম, তবে কোনও কারণে যখন আমি '_ new_post' এর সাথে '$ pid' প্রতিস্থাপন করেছি তখন এটি পোস্ট থাম্বনেল সন্নিবেশ
করিয়েছে

লোল আমি খুব বোকা। আমি কেবল ' $pid = wp_insert_post($new_post);
পি-পিডি

আপনি এটি পরিশ্রম করে আনন্দিত, এবং আপনি পয়েন্টটি পেলেন তা আরও ভাল।
বেন্টারনেট

হ্যাঁ, আপনার সহায়তার জন্য আপনাকে অনেক ধন্যবাদ। এখন যেহেতু আমি এটি বুঝতে পেরেছি, এর সময় কিছু
অজ্যাক্স

1
দুর্ভাগ্যক্রমে আমার স্ট্যাকওভারফ্লোতে কেবল একটি অ্যাকাউন্ট রয়েছে তাই আমি এই প্রশ্নটিতে কেবল একটি আপগেট দিতে পারি। নিখুঁত উত্তর.
হেমনাথ মৌলি

1

এইচটিএমএল মার্কআপ:

 <p>
   <label for="custom-upload">Upload New Image:</label>
   <input type="file" tabindex="3" name="custom-upload" id="custom-upload" />
 </p>
 <?php
  /*Retrieving the image*/
  $attachment = get_post_meta($postid, 'custom_image');

  if($attachment[0]!='')
  {
   echo wp_get_attachment_link($attachment[0], 'thumbnail', false, false);
  }

 ?>

চিত্র আপলোড হচ্ছে:

<?php
global $post; /*Global post object*/
$post_id = $post->ID; /*Geting current post id*/
$upload = $_FILES['upload']; /*Receive the uploaded image from form*/
add_custom_image($post_id, $upload); /*Call image uploader function*/

function add_custom_image($post_id, $upload)
{
 $uploads = wp_upload_dir(); /*Get path of upload dir of wordpress*/

 if (is_writable($uploads['path']))  /*Check if upload dir is writable*/
 {
  if ((!empty($upload['tmp_name'])))  /*Check if uploaded image is not empty*/
  {
   if ($upload['tmp_name'])   /*Check if image has been uploaded in temp directory*/
   {
    $file=handle_image_upload($upload); /*Call our custom function to ACTUALLY upload the image*/

    $attachment = array  /*Create attachment for our post*/
    (
      'post_mime_type' => $file['type'],  /*Type of attachment*/
      'post_parent' => $post_id,  /*Post id*/
    );

    $aid = wp_insert_attachment($attachment, $file['file'], $post_id);  /*Insert post attachment and return the attachment id*/
    $a = wp_generate_attachment_metadata($aid, $file['file'] );  /*Generate metadata for new attacment*/
    $prev_img = get_post_meta($post_id, 'custom_image');  /*Get previously uploaded image*/
    if(is_array($prev_img))
    {
     if($prev_img[0] != '')  /*If image exists*/
     {
      wp_delete_attachment($prev_img[0]);  /*Delete previous image*/
     }
    }
    update_post_meta($post_id, 'custom_image', $aid);  /*Save the attachment id in meta data*/

    if ( !is_wp_error($aid) ) 
    {
     wp_update_attachment_metadata($aid, wp_generate_attachment_metadata($aid, $file['file'] ) );  /*If there is no error, update the metadata of the newly uploaded image*/
    }
   }
  }
  else
  {
   echo 'Please upload the image.';
  }
 }
}

function handle_image_upload($upload)
{
 global $post;

        if (file_is_displayable_image( $upload['tmp_name'] )) /*Check if image*/
        {
            /*handle the uploaded file*/
            $overrides = array('test_form' => false);
            $file=wp_handle_upload($upload, $overrides);
        }
 return $file;
}
?>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.