has_post_format () বনাম get_post_format ()


10

আমি কেবল পোস্ট ফর্ম্যাটগুলির ধারণায় পদক্ষেপ নিয়ে ভাবছিলাম যে পোস্ট ফর্ম্যাট "এপিআই" থেকে 3 টির মধ্যে দুটি ফাংশন কেন একেবারে একই কার্যকারিতা রয়েছে? নিম্নলিখিত দুটি ধারণাটি বিবেচনা করুন (এ বনাম বি):

if ( have_posts() )
{
    while ( have_posts() )
    {
        the_post();

        // A) has_post_format
        if ( has_post_format('format') )
        {
            the_excerpt(); // some special formating
        }

        // VERSUS:

        // B) 
        if ( get_post_format( $GLOBALS['post']->ID ) == 'format' )
        {
            the_excerpt(); // some special formating
        }

    } // endwhile;
} // endif;

কেউ দয়া করে আমাকে ব্যাখ্যা করতে পারেন কেন কেবলমাত্র প্রাক্তন দুটি ফাংশন রয়েছে। get_post_format? আপনি যদি এমন কিছু পরিস্থিতিতে আমাকে উদাহরণ দিতে পারেন যেখানে অন্যটি যে কোনও কাজ করতে পারে সেটিতে সক্ষম না হয় তবে আমি বিশেষ খুশি হব এবং এটি +1 করবো।

উত্তর:


12

সম্পাদন করা

has_post_format()$formatপ্রথম প্যারামিটার হিসাবে একটি স্ট্রিং প্রয়োজন ; যার অর্থ এটি কেবলমাত্র সুস্পষ্ট পোস্ট-ফর্ম্যাট ধরণের পরীক্ষার জন্য ব্যবহার করা যেতে পারে:

if ( has_post_format( $format ) {
    // Current post has the $format post format;
    // do something
}

কোনও পোস্টের কোনও পোস্ট ফর্ম্যাট আছে কিনা তা নির্ধারণ করতে , ব্যবহার করুন get_post_format(), যা falseবর্তমান পোস্টে কোনও পোস্টের বিন্যাস নির্ধারিত না হলে ফিরে আসবে :

if ( false != get_post_format() ) {
    // Current post has a post format;
    // do something
}

লক্ষ্য করুন "মান" একটি নয় প্রকৃত পোস্ট ফরম্যাট, বরং হয় স্থানধারক পোস্টগুলি যা একটি পোস্ট বিন্যাস নির্ধারিত হবে না শব্দটি। অভ্যন্তরীণভাবে, "স্ট্যান্ডার্ড" পোস্ট-ফর্ম্যাট টাইপের অনুসন্ধানের falseপরিবর্তে ওয়ার্ডপ্রেস ফিরে আসে post-format-standard, আপনি কেবল ব্যবহার করবেন if ( false == get_post_format() )

মূল

has_post_format() একটি বুলিয়ান মান প্রদান করে, যা শর্তসাপেক্ষে কার্যকর, যেমন:

if ( ! has_post_format() ) {
     // I'm a standard-format post; do something
}

অথবা

if ( has_post_format( array( 'gallery', 'image' ) ) {
     // I'm a gallery or image format post; do something
}

get_post_format()বর্তমান পোস্ট ফর্ম্যাট টাইপের স্ট্রিং মানটি দেয়, যা বিভিন্ন উপায়ে কার্যকর। সর্বাধিক শক্তিশালী এক হ'ল পোস্ট ফর্ম্যাটের উপর ভিত্তি করে বিভিন্ন টেম্পলেট অংশ ফাইলগুলি কল করা, যেমন:

get_template_part( 'entry', get_post_format() )

যার মধ্যে অন্তর্ভুক্ত থাকবে, যেমন স্বতন্ত্র ফর্ম্যাটের জন্য "এন্ট্রি-অ্যাওয়ার্ড.এফপি", বা একটি মান বিন্যাসের জন্য "এন্ট্রি.এফপি"।


get_template_partসত্যিই স্মার্ট!
কায়সার 18

বেনেট - আপনার এটিকে সমাধান হিসাবে চিহ্নিত করতে সম্পূর্ণ ভুলে গিয়েছে। বিটিডব্লিউ: সমস্ত যেমন আপডভোট হয়েছিল :)
কায়সার

1
if ( ! has_post_format() ) {}1 ম (প্রয়োজনীয়) যুক্তিটি অনুপস্থিত হওয়ার পরে একটি সতর্কতা (কমপক্ষে 3.5-আরসি 1 হিসাবে) প্রদান করে। কোডেক্স.ওয়ার্ডপ্রেস.আর.
গ্লুকপ্রেস

4

নিম্নলিখিত অংশটি সঠিক নয়, আমি এই বর্ধনের জন্য একটি টিকিট তৈরি করেছি ।

has_post_format()এটি আরও নমনীয় কারণ এটি তৈরি করে has_term(), যা তৈরি করে is_object_in_term()। এর অর্থ আপনি পোস্ট বিন্যাসগুলির একটি অ্যারে পাস করতে trueপারেন এবং পোস্টগুলিতে এই ফর্ম্যাটগুলির মধ্যে একটি থাকলে তা ফিরে আসবে ।

if ( has_post_format( array( 'aside', 'video' ) ) {
    // It's an aside or a video
}

মূল স্পেসিফিকেশন টিকিট ইতিমধ্যে উভয়ই উল্লেখ করেছে get_post_format()এবং has_post_format()সম্ভবত এটি কারণশাসন ব্যবস্থার উপর ভিত্তি করে যার উভয় কার্য রয়েছে?


ওহ, অবশ্যই, এটি আপনার সত্য / মিথ্যা উত্তর ফিরে পেতে নির্দিষ্ট ফর্ম্যাটগুলি পরীক্ষা করার অনুমতি দিয়ে আপনি এখানে কী করতে পারবেন তা প্রসারিত করে।
ড্রউ গুরলি

এটিকে is_object_in_term()পরিবর্তে ফাংশনটি ব্যবহার করা যদি বোধগম্য হয় তা আমাকে ভাবিয়ে তোলে ।
কায়সার

1
@ জান ফ্যাব্রি প্রথম পরামিতি হিসাবে has_post_format()একটি স্ট্রিং আশা করে । একটি অ্যারে ব্যর্থ হবে।
ফুসিয়া

1
@ টোসচো: ডার্ন, আমি জানতাম যে কোডটি স্রেফ ঝলকানোর পরিবর্তে আমার এটি পরীক্ষা করা উচিত ছিল। তারপরে এটি অন্যান্য has_*ফাংশনের সাথে সঙ্গতিপূর্ণ নয় - আমি এটির জন্য একটি টিকিট তৈরি করেছি।
জান ফ্যাব্রি

2
@ জ্যান ফ্যাব্রি এটি আপনার উত্তর ঠিক করার খুব দুর্দান্ত উপায়। :)
ফুক্সিয়া

3

সরল, has_post_format () একটি সত্য / মিথ্যা (বুলিয়ান) মান প্রদান করে যা যদি বিবৃতিতে কার্যকর হয়, যখন get_post_format () পোস্টের ফর্ম্যাটটি উপস্থিত থাকে, যদি সেখানে উপস্থিত থাকে এবং সম্ভবত সেখানে NULL বা মিথ্যা থাকে। বুলিয়ান মানগুলি ব্যবহার করা আপনার শর্তগুলি সর্বদা আপনার প্রত্যাশা মতো আচরণ করে তা নিশ্চিত করার একটি ভাল পরিষ্কার উপায় এবং has_post_format () ফাংশনটি সহজ সহজ সংক্ষিপ্ত শর্তের জন্য অনুমতি দেয়:

if ( has_post_format() ) {
  //yes we do
} else {
  //no we do not
}

if ( !has_post_format() ) {
  //no we do not
} else {
  //yes we do
}

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


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