ইমেজ শিরোনাম / Alt গুণাবলী কীভাবে পাবেন?


17

আমার সাদা থিমে, হোম স্লাইডার পোস্টের জন্য কোনও বিকল্প বৈশিষ্ট্য কনফিগার করা নেই। আমি মিডিয়া লাইব্রেরি ইন্টারফেসের মাধ্যমে চিত্রটির জন্য Alt পাঠ্য যুক্ত করেছি। আমি Alt পাঠ্য / বৈশিষ্ট্যটি প্রদর্শনের জন্য নিম্নলিখিত কোডটি যুক্ত করেছি। তবে এটি প্রদর্শিত হয় না:

<img class="homepage-slider_image" src="http://www.blabla.com/wp-content/uploads/2013/06/cms-website4-1800x800.jpg" alt="" />

কোডটি এখানে:

<?php
  $image = get_post_meta(get_the_ID(), WPGRADE_PREFIX.'homepage_slide_image', true);
  if (!empty($image)) {
    $image = json_decode($image);
    $image_alt = get_post_meta( $attachment->ID, '_wp_attachment_image_alt', true);
    if ( empty( $image_alt )) {
      $image_alt = $attachment->post_title;
    }
    if ( empty( $image_alt )) {
      $image_alt = $attachment->post_excerpt;
    }
    $image_title = $attachment->post_title;
    $image_id = $image->id;
    $image = wp_get_attachment_image_src( $image_id, 'blog-huge', false);
    echo '<img class="homepage-slider_image" src="'.$image[0].'" alt="'. $image_alt .'" />';
  }
?>

1
আপনি পোস্ট মেটা পাওয়ার চেষ্টা করছেন $attachment->IDতবে আমি $attachmentআপনার কোডে অবজেক্ট সম্পর্কিত কোনও তথ্য দেখতে পাচ্ছি না ।
সাইবমেটা

@cybmeta আমি এই কোড স্নিপেটটি এখান থেকে পেয়েছি ওয়ার্ডপ্রেস.স্ট্যাকেক্সেঞ্জারভিউ
সেকশনস

আপনি প্লাগইন যেমন 1) ওয়ার্ডপ্রেস.আর. / প্লাগইনস / আইমেজিসিও 2) ওয়ার্ডপ্রেস.আর. / প্লাগইনস / 3) ওয়ার্ডপ্রেস.আর / প্লাগইনস / আউটো- আইমেজ -আল্ট আশা করি এটি সাহায্য করে!
জেমস

উত্তর:


18

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

// An attachment/image ID is all that's needed to retrieve its alt and title attributes.
$image_id = get_post_thumbnail_id();

$image_alt = get_post_meta($image_id, '_wp_attachment_image_alt', TRUE);

$image_title = get_the_title($image_id);

বোনাস হিসাবে এখানে কীভাবে একটি চিত্র src পুনরুদ্ধার করবেন। উপরের বৈশিষ্ট্যগুলির সাথে আমাদের একটি স্ট্যাটিক চিত্রের মার্কআপ তৈরি করতে হবে।

$size = 'my-size' // Defaults to 'thumbnail' if omitted.

$image_src = wp_get_attachment_image_src($image_id, $size)[0];

আমি আপনার উত্তর এবং অন্যদের মধ্যে পার্থক্য পেতে পারি না। প্রশ্নটিতে সমস্যাটি হ'ল সংযুক্তি আইডি সঠিক ছিল না, এবং এটিই উত্তর। অতিরিক্তভাবে, আপনার উত্তরে আপনি বর্তমান পোস্টের থাম্বনেইলের জন্য আইডি পাবেন তবে পছন্দসই সংযুক্তির জন্য নয়। সুতরাং এটি ওপি-র প্রশ্নের উত্তর / সমাধান করে না।
সাইবমেটা

আপনি যেখান থেকে আপনার ইমেজ আইডি পাবেন তা নির্ভর করবে। তবে যাইহোক ডাউনভোটের জন্য ধন্যবাদ। আপনার আমার উত্তরটি আপনার নিজের মধ্যে পেস্ট করে বিশেষত দুর্দান্ত।
লেইম্যানেক্স

25

আপনার সমস্যাটি হ'ল আপনি সঠিক সংযুক্তির আইডি get_post_meta()এবং get_the_title()ফাংশন সরবরাহ করছেন না।

এই altচিত্রটির পেতে এটি আপনার কোড :

$image_alt = get_post_meta( $attachment->ID, '_wp_attachment_image_alt', true);

এবং এটি সঠিক, কিন্তু $attachment->IDআপনার কোডে সংজ্ঞায়িত করা হয়নি, সুতরাং, ফাংশনটি কোনও কিছুই ফেরায় না।

আপনার কোডটি পড়ে মনে হচ্ছে আপনি একটি মেটা ক্ষেত্র হিসাবে চিত্রটির আইডি সঞ্চয় করেন এবং তারপরে আপনি এই কোডটি সহ এটি পান:

$image = get_post_meta(get_the_ID(), WPGRADE_PREFIX.'homepage_slide_image', true);

সুতরাং, $image->idআপনার কোডে এটি সঠিক বলে ধরে নিচ্ছেন , আপনার এটি প্রতিস্থাপন করা উচিত:

$image_alt = get_post_meta( $attachment->ID, '_wp_attachment_image_alt', true);

সঙ্গে:

$image_alt = get_post_meta( $image->id, '_wp_attachment_image_alt', true);

altএটি শিরোনাম পাওয়ার জন্য ,

 $image_title = get_the_title( $image->id );

4

আমি আমার সমস্ত থিমগুলিতে চিত্র সংযুক্তি ডেটা পেতে একটি দ্রুত ফাংশন ব্যবহার করি:

//get attachment meta
if ( !function_exists('wp_get_attachment') ) {
    function wp_get_attachment( $attachment_id )
    {
        $attachment = get_post( $attachment_id );
        return array(
            'alt' => get_post_meta( $attachment->ID, '_wp_attachment_image_alt', true ),
            'caption' => $attachment->post_excerpt,
            'description' => $attachment->post_content,
            'href' => get_permalink( $attachment->ID ),
            'src' => $attachment->guid,
            'title' => $attachment->post_title
        );
    }
}

আশাকরি এটা সাহায্য করবে!


2
$image = get_post_meta(get_the_ID(), WPGRADE_PREFIX . 'homepage_slide_image', true);
if (!empty($image)) {
    $image          = json_decode($image);
    $image_id       = $image->id;
    $img_meta       = wp_prepare_attachment_for_js($image_id);
    $image_title    = $img_meta['title'] == '' ? esc_html_e('Missing title','{domain}') : $img_meta['title'];
    $image_alt      = $img_meta['alt'] == '' ? $image_title : $img_meta['alt'];
    $image_src      = wp_get_attachment_image_src($image_id, 'blog-huge', false);

    echo '<img class="homepage-slider_image" src="' . $image_src[0] . '" alt="' . $image_alt . '" />';

}

দয়া করে মনে রাখবেন যে আমি আপনার পরীক্ষা করি নি $image->id, কেবল ধরে নেওয়া হয়েছে যে আপনার সঠিক সংযুক্তি আইডি রয়েছে। বাকী থেকে আসে $img_meta। যদি Alt অনুপস্থিত থাকে তবে আমরা চিত্রের শিরোনামটি ব্যবহার করছি, শিরোনামটি অনুপস্থিত থাকলে আপনি পূরণ করতে আপনাকে "নষ্ট শিরোনাম" পাঠ্যটি দেখতে পাবেন।


2

ঠিক আছে আমি উত্তরটি পেয়েছি যে নেট এ এখন কারও কাছে নেই আমি এখন অনেক দিন খুঁজছিলাম। আপনার থিম বা প্লাগইন যদি WP_Customize_Iedia_Control () ব্যবহার করে যদি আপনি WP_Customize_Media_Control () get_theme_mod () ইউআরএলটি না ফিরে আইডি ফিরিয়ে দেন তবে আমার কাজটি রাখুন এটি কেবলমাত্র কাজ করে।

আমার সমাধানের জন্য আমি নতুন সংস্করণ ব্যবহার করছিলাম WP_Customize_I छवि_Control ()

ফোরামে প্রচুর পোস্টে get_attachment_id () রয়েছে যা আর কাজ করে না। আমি সংযুক্তি_আর_লি_পোস্টিড () ব্যবহার করেছি

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

// 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>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.