কীভাবে কোনও চিত্র সংযুক্তির আল্ট পাঠ পুনরুদ্ধার করবেন?


32

আমি অন্য জায়গায় ক্লিক করা হয়েছে এমন চিত্রগুলির বৃহত সংস্করণগুলি দেখানোর জন্য একটি সংযুক্তি.এফপি ফাইল ব্যবহার করছি। আমি জাভাস্ক্রিপ্ট সহ চিত্রের নিচে ক্যাপশন হিসাবে চিত্রটি Alt টেক্সটটি টানতে চাই, তবে যখন wp_get_attachment_image_src () ব্যবহার করা হয় তখন Alt পাঠ্যটি অন্তর্ভুক্ত হয় না। আমি মনে করি না যে ডাব্লুপি এর এটি পুনরুদ্ধার করার জন্য একটি ফাংশন আছে, তাই আমার নিজের প্রয়োজন। সেই ফাংশনটি লিখতে আমার জানতে হবে ... একটি চিত্রের জন্য Alt পাঠ্যটি কোথায় সংরক্ষণ করা হয়েছে?

আমার সংযুক্তি পৃষ্ঠাটি ব্যবহার করে wp_get_attachment_image_src(), এতে আল টেক্সট অন্তর্ভুক্ত থাকে না।

<div class = "entry">
<?php 
if ( wp_attachment_is_image( $post->id ) ) : 
    $att_image = wp_get_attachment_image_src( $post->id, "large");?>

    <a href="<?php echo wp_get_attachment_url($post->id); ?>" 
        title="<?php the_title(); ?>" 
        rel="attachment">
    <img class="attached_img" 
        src="<?php echo $att_image[0];?>" 
        width="<?php echo $att_image[1];?>" 
        height="<?php echo $att_image[2];?>"  
        class="attachment-medium" 
        alt="<?php $post->post_excerpt; ?>" />
    </a> 
} <?php endif;?>
</div>

এই শো:

<div class = "entry">
    <a href="http://www.example.com/wp-content/uploads/2010/07/photo_namejpg" 
       title="My_Photo_Title" 
       rel="attachment">
       <img class="attached_img" 
            src="http://www.example.com/wp-content/uploads/2010/07/photo_name_and_size.jpg" 
            width="393" 
            height="500"  
            class="attachment-medium" 
            alt="" />
    </a>
</div>  

আমি সচেতন যে $post->post_excerptউপরের কোডটিতে ডেকে আনা হচ্ছে, তবে আমি নিশ্চিত নই যে চিত্রটির Alt বৈশিষ্ট্যটি পেতে এটির সাথে কী প্রতিস্থাপন করা হবে।

উত্তর:


53

আমি সম্প্রতি একটি ক্লায়েন্ট প্রকল্পের জন্য কিছু গবেষণা সম্প্রতি করেনি তাই দেখ-এবং-দেখ আমি এখানে ব্যবহার করতে পেতে!

পাঠ্যের পরে আপনি ওয়ার্ডপ্রেস .1.০.১ এর মধ্যে থেকে ইমেজ হ্যান্ডলিং ফাংশনগুলির সর্বাধিক (সমস্ত?) একটি শ্রেণিবদ্ধ তালিকা দেখতে পাবেন (আমি সেগুলি কিছুটা ক্রমের সাথে সংযুক্ত করেছি তবে আমার শ্রেণিবিন্যাসে খুব বেশি বিশ্বাস রাখি না))

যাইহোক, আপনি যা চেয়েছিলেন তার পরিবর্তে আপনার কী প্রয়োজন (আমি মনে করি) উত্তর দেওয়া ( ঠিক আছে, আমি তারও উত্তর দেব, শেষে ) আমার মনে হয় আপনার যা প্রয়োজন তা হল এই wp_get_attachment_image()ফাংশন যা এই বৈশিষ্ট্যগুলি সহ একটি HTML স্ট্রিং ফিরিয়ে দেবে:

  • 'src',
  • 'class',
  • 'alt' এবং
  • 'title'

ওয়ার্ডপ্রেস 3.0 ইমেজ হ্যান্ডলিং ফাংশন

সুতরাং এখানে আপনার এবং অন্যান্য রেফারেন্সের জন্য ওয়ার্ডপ্রেসের চিত্র পরিচালনা করার কাজগুলি রয়েছে ( আপনার সঠিক প্রশ্নের উত্তরের জন্য নীচে ঝাঁপ দাও ):

চিত্র সমর্থন / থাম্বনেইল

ক্রোক

মাইম টাইপ

আপলোড

নথি ব্যবস্থা

এইচটিএমএল

নিম্ন স্তরের চিত্র হ্যান্ডলিং:


প্রতিশ্রুতি হিসাবে চিত্রটির 'alt'পাঠ্যটি wp_postmetaমেটা_কির সাথে একটি স্ট্রিং হিসাবে সংরক্ষণ করা হবে'_wp_attachment_image_alt'

আপনি সম্ভবত ইতিমধ্যে জানেন যে আপনি এটির get_post_meta()মতো সাধারণ দিয়ে এটি লোড করতে পারেন :

$alt_text = get_post_meta($post->ID, '_wp_attachment_image_alt', true);


1
ঠিক আছে, আপনি এখন বলেছিলেন যে আমি এখন একটু ডপী বোধ করতে সহায়তা করতে পারি না। আমি wp_get_attachment_imgage()আগে ব্যবহার করেছি এবং এটি সম্পর্কে সম্পূর্ণরূপে ভুলে গেছি। আপনি যা ভেবেছিলেন আমার আসলে যা প্রয়োজন তা সম্পর্কে আপনি ঠিক বলেছেন। তথ্যের জন্য ধন্যবাদ। আপনি কোথায় ঠিক সেই মেটাটি সংরক্ষণ করেছেন সে সম্পর্কেও ঠিক বলেছেন ... আমি সেই জায়গাতেই তাকিয়ে ছিলাম, তবে এটি আমার কাছ থেকে দূরে সরে গেছে যদিও আমি অবশ্যই ঠিক সেদিকেই তাকাচ্ছিলাম। দিনের শেষে এটির জন্য আমি কী পাই। আবার ধন্যবাদ!
কেভস্ট্রআউট

আরে, কোন সমস্যা নেই আমি সাম্প্রতিক অতীতেও কিছু সত্যই স্পষ্ট প্রশ্ন জিজ্ঞাসা করেছি কেবল হ্যাকারদের তালিকায় উত্তরটি উল্লেখ করার সাথে সাথেই কেউ উত্তর দেওয়ার সাথে সাথে পরিষ্কারভাবে প্রকাশ পেতে পারে। এখানে বা সেখানে কিছু মিস করা সহজ। তবে ওয়ার্ডপ্রেস উত্তরগুলির আসল সুবিধা হ'ল প্রতিটি প্রশ্ন এবং উত্তর ভবিষ্যতে একই ধরণের প্রশ্নগুলির সাথে অন্যদের জন্য একটি উত্স হয়ে যায়। আমি এমনকি আমি উত্তর দিয়েছি গুগল জিনিসটি আশা করি তবে ভবিষ্যতে পয়েন্টগুলি ভুলে গেছি!
মাইকচিন্কেল

1
তাত্ক্ষণিক প্রশ্ন: আপনি ইঙ্গিত করেছেন যে wp_get_attachment_image()চিত্রের এসআরসি এবং বৈশিষ্ট্যগুলির একটি অ্যারে প্রদান করে। মনে হচ্ছে কেবল চিত্রটি এতে রয়েছে এবং এর বৈশিষ্ট্যগুলি এইচটিএমএল ফিরিয়েছে। এখনও কাজটি করে, আপনি যদি ফাংশনটিতে
ফাংশন_রিফারেন্স

1
@ মাইক - wp_get_attachment_image সম্পর্কে একটি অ্যারের হিসাবে নোটটি আপডেট করার জন্য কেবলমাত্র একটি দ্রুত অনুস্মারক - যা আমাকে কিছুটা স্ট্যাম্পড করেছে :)। অন্যথায় দুর্দান্ত উত্তর!
জোনাথন ওল্ড

1
খুব বিস্তারিত উত্তর, ভাল হয়েছে!
বাস ভান ডিজক

5

সংযুক্তিতে নিজেই wp_prepare_attachment_for_js( $attachment )যেখানে $attachmentডব্লিউপি_পোস্ট পজিশনটি দেখুন তা বিবেচনা করুন ।

এটি "রান্নাঘরের সিঙ্ক" ফাংশনটির কিছুটা হলেও এটি 'ওয়েট' সহ এক টন মেটাডেটা সহ একটি দুর্দান্ত হ্যাশ সরবরাহ করে:

$response = array(
        'id'          => $attachment->ID,
        'title'       => $attachment->post_title,
        'filename'    => wp_basename( $attachment->guid ),
        'url'         => $attachment_url,
        'link'        => get_attachment_link( $attachment->ID ),
        'alt'         => get_post_meta( $attachment->ID, '_wp_attachment_image_alt', true ),
        'author'      => $attachment->post_author,
        'description' => $attachment->post_content,
        'caption'     => $attachment->post_excerpt,
        'name'        => $attachment->post_name,
        'status'      => $attachment->post_status,
        'uploadedTo'  => $attachment->post_parent,
        'date'        => strtotime( $attachment->post_date_gmt ) * 1000,
        'modified'    => strtotime( $attachment->post_modified_gmt ) * 1000,
        'menuOrder'   => $attachment->menu_order,
        'mime'        => $attachment->post_mime_type,
        'type'        => $type,
        'subtype'     => $subtype,
        'icon'        => wp_mime_type_icon( $attachment->ID ),
        'dateFormatted' => mysql2date( get_option('date_format'), $attachment->post_date ),
        'nonces'      => array(
            'update' => false,
            'delete' => false,
            'edit'   => false
        ),
        'editLink'   => false,
        'meta'       => false,
    );

এটি বিশেষত দরকারী (যেমন নামটি থেকেই বোঝা যায়) একটি wp.media ভিউতে সংযুক্তি চিত্র মেটা প্রেরণের জন্য wp_send_ajax(), তবে এর অর্থ এই নয় যে আপনি এটি অন্য উদ্দেশ্যে ব্যবহার করতে পারবেন না।

আমি _wp_attachment_image_altপোস্ট মেটা ক্ষেত্র থেকে দূরে সরে যেতে পছন্দ করি , যদি Alt পাঠ্য পুনরুদ্ধার পদ্ধতিটি কখনও পরিবর্তিত হয় (অসম্ভব, তবে অনুমেয়)।

আমি মনে করি যে একটি wp_get_attachment_image_alt()পদ্ধতির ক্ষেত্রে অবশ্য আছে।


ঠিক আমি খুঁজছেন ছিল কি। কারও কি এর অভিনয় সম্পর্কে ধারণা আছে? বিভিন্ন ধরণের মান এটি পুনরুদ্ধার করে ... আমি অবাক হই ...
লার্জান

@ লার্জান আমি পারফরম্যান্স নিয়ে চিন্তিত হব না - যদি আপনি একই সময়ে কয়েকশ চিত্রের ডেটা না পেয়ে থাকেন ...
টম অ্যাগার

4

মাইকের উত্তর অবশ্যই সঠিক, তবে $alt_text = get_post_meta($post->ID, '_wp_attachment_image_alt', true);একটি খালি স্ট্রিং ফিরে আসতে পারে।

wp_get_attachment_image তবে সর্বদা একটি alt_text পায়।

ওয়ার্ডপ্রেস টিম নিম্নলিখিত কৌতুক প্রয়োগ করে, প্রথমে পোস্ট_সম্পর্কিত পরীক্ষা করে তারপরে শিরোনাম প্রাপ্ত করে।

if(empty($alt_text)) // If not, Use the Caption
{
    $attachment = get_post($post->ID);
    $alt_text = trim(strip_tags( $attachment->post_excerpt ));
}
if(empty($alt_text)) // Finally, use the title
{ 
    $attachment = get_post($post->ID);
    $alt_text = trim(strip_tags( $attachment->post_title )); 
}

2

আমি জানতে পারি যে সংযুক্তিগুলির জন্য আল্ট পাঠ্য "_wp_attachment_image_alt" নামে একটি কাস্টম মেটাতে সঞ্চিত ছিল

সুতরাং সংযুক্তির আইডি থাকাকালীন আমি এই কোডটি দিয়ে Alt পাঠ্য পেতে সক্ষম হয়েছি:

<?php echo get_post_meta($attachment_id, '_wp_attachment_image_alt', true) ?>

0

আপনি যদি WP_Customize_Media_Control () ব্যবহার করেন তবে আপনার get_theme_mod () পোস্ট আইডিটি ফিরিয়ে দেবে তবে আপনি যদি নতুন WP_Customize_I छवि_Control () ব্যবহার করছেন তবে get_theme_mod () চিত্রটি url ফিরিয়ে দেবে আমি WP_Custom_It_Custom_It ব্যবহার করে ALT লেখাটি পেতে সক্ষম হয়েছি ()

এটি আমি কীভাবে এটি করতে সক্ষম হয়েছিল তা এখানে। আশা করছি এটা ওখানে কাওকে সাহায্য করবে

// This is getting the image / url
$feature1 = get_theme_mod('feature_image_1');

// This is getting the post id
$feature1_id = attachment_url_to_postid($feature1);

// This is getting the alt text from the image that is set in the media area
$image1_alt = get_post_meta( $feature1_id, '_wp_attachment_image_alt', true );

মার্কআপ

<a href="<?php echo $feature1_url; ?>"><img class="img-responsive center-block" src="<?php echo $feature1; ?>" alt="<?php echo $image1_alt; ?>"></a>

0

মাইকের উত্তরে যুক্ত করতে যে কেউ এই দরকারী হতে পারে। আপনার সংযুক্তির নির্দিষ্ট আইডি পেতে প্রয়োজন হতে পারে, আপনি পোস্ট আইডির get_post_thumbnail_idউদাহরণ দিয়ে পাস করে এটি করতে পারেন :

  $the_img = wp_get_attachment_image( get_post_thumbnail_id( get_the_ID() ) );
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.