ওয়ার্ডপ্রেস ৩.১ এ আপনি মেটা_কোয়ারির সাথে অর্ডারবি কীভাবে ব্যবহার করবেন?


21

মেটা_কোয়ারি দিয়ে আমার পছন্দসই মেটা ডেটা দ্বারা ফিল্টার করার পরে কি কাস্টম পোস্টগুলির তালিকা অর্ডার করা সম্ভব?

উদাহরণস্বরূপ, আমার কাছে ওয়েবিনার্স নামে একটি কাস্টম পোস্ট টাইপ রয়েছে। আমি আসন্ন সমস্ত ওয়েবিনারদের তালিকাভুক্ত করার চেষ্টা করছি এবং তাদের ওয়েবিনার_স্টার্টডেট নামে কাস্টম মেটা ক্ষেত্র দ্বারা আদেশ দিয়েছি।

নিম্নলিখিত কোয়েরিটি ব্যবহার করে, আমি ওয়েবিনারগুলি সফলভাবে পুরানো ওয়েবিনারগুলি বাদ দিয়ে ফিরিয়ে দিতে সক্ষম হয়েছি। তবে, তারা এখনও প্রকাশিত ক্রম অনুসারে প্রকাশিত হয়েছে, ওয়েবিনার_স্টার্টডেট দ্বারা নয়।

<?php $my_array =  array(
    'meta_query' => array(
            array(
                'key' => 'webinar_startDate',
                'value' => date("Y-m-d H:i:s"),
                'compare' => '>=',
                'type' => 'DATETIME'
            )
    ),
    'orderby' => 'meta_value',
    'post_type' => 'webinars',
    'posts_per_page' => 20,
    'order' => 'ASC'
); ?>

আমি সন্দেহ করি যে 3.0 থেকে 3.1 থেকে পরিবর্তনের কারণে 3.1, অর্ডারবাই => মেটা_ভ্যালু ব্যবহার সম্ভবত অন্যরকম, তবে এটি ব্যাখ্যা করার জন্য আমি ওয়ার্ডপ্রেস ডকুমেন্টেশনের মধ্যে কোনও উত্তর খুঁজে পাই না।

কেউ সাহায্য করতে পারেন? আগাম ধন্যবাদ.

উত্তর:


17

নতুন meta_queryঅ্যারে কোয়েরিটি পোস্ট করে তা নির্বাচন করে। হ্যাঁ, আপনি এর মধ্যে 'কী' নির্দেশ করছেন meta_queryতবে আপনি এখনও এর পুরানো পদ্ধতিটি ব্যবহার করতে পারেন

'orderby' => 'meta_value', 
'meta_key' => '_events_meta',

মেটা_কোওয়ারির পাশাপাশি, এই রেখাগুলি কীভাবে ফলাফলের ক্যোয়ারিকে বাছাই করতে হবে তা নির্দেশ করে । হ্যাঁ, আপনি একই মেটা_কিকে দু'বার নির্দেশ করতে পারেন।


9
এই উত্তরটি সম্পূর্ণ সঠিক নয়। যদি আপনি বিদ্যমান মেটা_কিউরির বাইরে কোনও অর্ডারবাই এবং একটি মেটা_কি যুক্ত করেন তবে ফলাফলটি অবশ্যই সরবরাহিত কী অনুসারে বাছাই করে - তবে এটির পরে মানচিত্রটি পূরণ না করে এমন কোনও পোস্ট অন্তর্ভুক্ত করা হবে যেখানে সেই মেটা কীটি সেট করা আছে if মেটা_কিউরিতে (কমপক্ষে, এটি টেস্টে আমার পক্ষে কীভাবে কাজ করেছিল)। এটি করার একটি আরও ভাল উপায় হ'ল
অর্ডারবাই

1

eventsলুপে সমস্ত পোস্ট পেতে আমার কাস্টম পোস্টগুলির জন্য নীচের কোডটি ব্যবহার করছি ।

$evtLoop = new WP_Query(array('post_type' => 'events',
                              'posts_per_page' => 10,
                              'orderby' => 'meta_value', 
                              'meta_key' => '_events_meta',
                              'order'=>'DESC'));

আমি মনে করি আপনি নিজের কোডটি প্রায় একইভাবে ব্যবহার করছেন। আমি মনে করি আপনি meta_keyবাছাই করার জন্য মেটা-ফিল্ডের নামটি মিস করছেন । সম্ভবত এটি যুক্ত করে যদি আপনি যোগ করেন

'meta_key' => 'webinar_startDate',

বাইরের অ্যারে?


আমি এখন দেখি. আমি ওয়ার্ডপ্রেস ডকুমেন্টেশন দ্বারা বিভ্রান্ত হয়েছি যা বলেছিল যে 'মেটা_কি' এবং 'মেটা_ভ্যালু' অবমূল্যায়ন করা হয়েছিল। আমি ধরে নিয়েছি যে এর অর্থ আমি সেগুলি ব্যবহার করতে পারছি না, তবে আমার ধারণা এটি বিভ্রান্তিকর। ধন্যবাদ!
জেফ কে।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.