দক্ষ শ্রমশাসন মোড়


9

এর জন্য আমার অনেকগুলি ব্যবহার রয়েছে তবে আমি কী ব্যয়বহুল অপারেশন হতে চলেছে তার সর্বাধিক পারফরম্যান্ট উপায়টি জানতে চাই।

উদাহরণ হিসাবে আমি একটি দোকান ব্যবহার করব।

প্রদত্ত:

  • একটি পণ্য ব্র্যান্ড শ্রমশক্তি
  • একটি পণ্য গোষ্ঠী শ্রেনী
  • একটি পণ্য পোস্ট ধরণ
  • উপরের ট্যাক্সনোমির জন্য সংরক্ষণাগার টেমপ্লেটগুলি

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

সুতরাং উদাহরণস্বরূপ, আমি যদি প্রোডাক্ট গ্রুপ 'উইমেনস' এ থাকি তবে এটি বাম দিকে ব্র্যান্ডগুলি প্রদর্শন করবে তবে কেবলমাত্র 'ব্র্যান্ডস' পণ্য গোষ্ঠীর পণ্যগুলির জন্য নির্দিষ্ট ব্র্যান্ডগুলি। উদাহরণস্বরূপ, 'ফ্যান্সি উইমেনস কাপস ইনক' ব্র্যান্ডটি প্রদর্শিত হবে, তবে 'ম্যানলি মেনলি লি।' নয়।

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

সম্পাদনা করুন: উদাহরণ 2:

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

উত্তর:


13

সাধারণকরণের জন্য এটি ট্যাক্সনমি বি এর সমস্ত শর্তাদি পুনরুদ্ধার করার বিষয়টি যা নির্দিষ্ট কর শুল্ক বি এর নির্দিষ্ট মেয়াদ সহ পোস্টগুলিতে রয়েছে।

যদিও এটি বেশ কয়েকটি পদক্ষেপে অসম্ভব নয় এবং পোস্টগুলির মাধ্যমে প্রচুর লুপিং (যা প্রকৃতপক্ষে অদক্ষ হবে) তবে আমি মনে করি দক্ষতার জন্য এসকিউএল দিয়ে যাওয়া যুক্তিসঙ্গত।

আমার রুক্ষ গ্রহণ এটি হবে:

/**
 * Get all terms of $tax_to taxonomy that posts in $term_from of $tax_from have.
 *
 * @param string $tax_from  taxonomy name
 * @param string $term_from term slug
 * @param string $tax_to    taxonomy name
 *
 * @return array|WP_Error
 */
function get_intersected_terms( $tax_from, $term_from, $tax_to ) {

    global $wpdb;

    $term_from = get_term_by( 'slug', $term_from, $tax_from );

    $query = "
    SELECT term_id FROM {$wpdb->term_taxonomy} WHERE taxonomy = '{$tax_to}' AND term_taxonomy_id IN (
        SELECT term_taxonomy_id FROM {$wpdb->term_relationships} WHERE object_id IN (
            SELECT object_id FROM {$wpdb->term_relationships} WHERE term_taxonomy_id = {$term_from->term_taxonomy_id}
        )
    )
    ";

    $term_ids = $wpdb->get_col( $query );

    if( empty( $term_ids) )
        return array();

    return get_terms( $tax_to, array( 'include' => $term_ids ) );
}

// example
var_dump( get_intersected_terms( 'category', 'cat-a', 'post_tag' ) );
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.