কেবল বৈশিষ্ট্যযুক্ত চিত্র সহ পোস্টগুলি অনুসন্ধান করুন


15

আমি posts টি পোস্ট জিজ্ঞাসা করতে চাই, তবে কেবলমাত্র যাঁর বৈশিষ্ট্যযুক্ত চিত্রটি সংযুক্ত রয়েছে। আমি এর meta_keyসাথে এর জন্য পদ্ধতিটি ব্যবহার করছি WP_Query:

$args = array(
    'post_type'  => 'post',
    'meta_key' => '_thumbnail_id',
    'post_count' => 6 );
$query = new WP_Query($args);

অনুসরণ করেছে

<?php while($query->have_posts()) : $query->the_post(); ?>
    <h2><?php the_title(); ?></h2>
    <?php the_post_thumbnail('thumbnail'); ?>
<?php endwhile; ?>

এটি কাজ করে না বলে মনে হচ্ছে। ক্যোয়ারী 6 টিরও বেশি পোস্ট এবং এমন বৈশিষ্ট্যযুক্ত চিত্র নেই যা তাদের ফিরিয়ে দিচ্ছে। এখানে কোন ভুল আমি পেয়েছি?

@ চিপ: var_dump($query);একটি বড় ফলাফল দেয় তাই আমি এটি একটি পেস্টবিনে পোস্ট করেছি


2
কোড স্নিপেট প্রত্যাশা মতো আমার জন্য কাজ করেছিল। হতে পারে ত্রুটিটি কোডের অন্য একটি অংশে রয়েছে।
রালফ 912

আপনি কি পেতে var_dump( $query )?
চিপ বেনেট

অতিরিক্ত জিনিস হিসাবে আমি ভেবেছিলাম - পোস্টগুলি ওয়ার্ডপ্রেস রফতানিকারক / আমদানিকারক ব্যবহার করে একটি লাইভ সাইট থেকে আমার স্থানীয় সার্ভারে আমদানি করা হয়েছিল। মূল পোস্টগুলিতে সমস্ত বৈশিষ্ট্যযুক্ত চিত্র ছিল যা স্পষ্টতই আমদানি প্রক্রিয়ায় হারিয়ে গেছে। এর অর্থ কি এই যে বৈশিষ্ট্যযুক্ত চিত্রগুলি মেটা কীগুলি অপসারণ করা সত্ত্বেও তদন্তটি বিশৃঙ্খলা সৃষ্টি করে?
harryg

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

হ্যাঁ, আমদানি করার সময় আমি বাক্সটি চেক করেছিলাম।
harryg

উত্তর:


3

আমদানিকারক চলমান থাকাকালীন সমস্ত মিডিয়া / সংযুক্তি ডাউনলোড এবং আমদানির জন্য আপনাকে অবশ্যই চেকবক্সটি চেক করতে হবে।

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

আপনার পোস্টগুলি মুছুন এবং সঠিক সেটিংস ব্যবহার করে পুনরায় আমদানি করুন।

এছাড়াও বিষয়টি দেখানোর জন্য, আপনি পোস্টগুলি প্রকৃতপক্ষে চেক করার কোনও চেষ্টা করেননি, সর্বদা উদাহরণ চেক করুন:

if ( $query->have_posts() ) { // you never checked to see if no posts were found
    while($query->have_posts()) { // alt style syntax doesn't work with most IDEs
        $query->the_post(); // individual statement should be on individual line
        ?><h2><?php the_title(); ?></h2><?php // you only need open/close tags here, not every line, save yourself some time typing
        if ( has_post_thumbnail() ) { // only print out the thumbnail if it actually has one
            echo '<p>post says it has a featured image</p>'; // double checking
            the_post_thumbnail('thumbnail');
        } else {
            echo '<p>this post does not have a featured image</p>';
        }
    }
} else {
    echo '<p>no posts found</p>';
}

আপনি যদি চেকবক্সটি চেক না করে থাকেন, তবে ছবিগুলি বলবেন যে তাদের একটি বৈশিষ্ট্যযুক্ত চিত্র রয়েছে, তবে কোনও চিত্র প্রদর্শিত হবে না


1
আমার সন্দেহ হয় যে এই কারণেই আমার দেওয়া উত্তরটি প্রত্যাশার মতো কাজ করছে না। ওয়ার্ডপ্রেস সুইসাইড প্লাগইন সমস্ত সামগ্রী মুছে ফেলার জন্য চমত্কার সহায়ক।
হেলগাটিভিকিং

আমি অবশ্যই বাক্সটি চেক করেছিলাম। তবে আমার অভিজ্ঞতায় এটি কখনই আমার পক্ষে কাজ করেনি। সমস্ত চিত্রগুলি বাইরের সাইটে ফিরে সংযুক্ত ছিল। স্থানীয়ভাবে ছবিগুলি সঞ্চয় করতে এবং সংযুক্ত করার জন্য আমি আমদানি বাহ্যিক চিত্রগুলি ( ওয়ার্ডপ্রেস.আর / এক্সটেন্ড / প্লাগিনস / ইম্পোর্ট-এক্সটার্নাল-ইমেজস ) প্লাগইন ব্যবহার করেছি used
harryg

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

এবং ইতিমধ্যে, the_post_thumbnailএকটি has_thumbnailকল দিয়ে মোড়ানো এবং অন্য কোনও কেস যুক্ত করুন যাতে আপনি অবশ্যই নিশ্চিতভাবেই জানতে পারবেন যে পোস্টটিতে কোনও বৈশিষ্ট্যযুক্ত চিত্র নেই
টম জে নওয়েল

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

24

ওয়ার্ডপ্রেস 3.5 হিসাবে, মেটা ক্যোয়ারী প্যারামিটারগুলি সমর্থন করে EXISTSএবং NOT EXISTSতুলনামূলক অপারেটর হিসাবে। আপনি যেখানে এটি ব্যবহার করছেন সে ক্ষেত্রে আপনি valueমেটা ক্যোয়ারির অংশটি বাদ দিতে পারেন । আপনার প্রশ্নের জন্য নিম্নলিখিত যুক্তি চেষ্টা করুন:

$args = array(
   'post_type'  => 'post',
   'posts_per_page' => 6,
    'meta_query' => array(
        array(
         'key' => '_thumbnail_id',
         'compare' => 'EXISTS'
        ),
    )
);

পরামর্শের জন্য ধন্যবাদ. আমি এখন 6 টি পোস্ট পেয়েছি তবে থাম্বনেইল ছাড়াই পোস্ট পাচ্ছি।
harryg

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

হ্যারিগ, আপনি কি v3.5 বা তার পরে ব্যবহার করছেন তা নিশ্চিত করতে পারবেন?
টম জে নোয়েল

হ্যাঁ আমি ওয়ার্ডপ্রেসের সর্বশেষ সংস্করণটি চালাচ্ছি - আমার স্থানীয় ডেভ সার্ভারে একটি নেটওয়ার্ক (মাল্টিসাইট) সেটআপ হিসাবে নতুনভাবে ইনস্টল করা।
harryg

2
মাত্র কিছু অতিরিক্ত তথ্য: একটি অমীমাংসিত বাগ রয়েছে, ট্র্যাকের টিকিট দেখুন 23268 , যদি NOT EXISTSএটি ব্যবহার করা হয় তবে কোনও মান ব্যবহার করা প্রয়োজনীয় করে তোলে ।
নিকোলাই
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.