انجمن


فیلتر کردن مطالب با زمینه دلخواه  (۵ نوشته)

  • DigiMohammad

    آفلاین
    عضو
    تعداد نوشته‌ها: ۲۸
    تشکر شده: ۱۳ بار
    # نوشته شده: ۱۲ سال پیش
    ۱ فروردین ۱۳۹۱ - ۱۲:۲۹

    با سلام به همه و عرض تبریک سال نو.
    مطلب که میخوام مطرح کنم شاید مورد خاصی باشه، در موردش در انجمن فارسی و انگلیسی وردپرس جستجو کردم اما چیز درستی پیدا نکردم.

    سعی میکنم کوتاه حرف بزنم:
    1- زمینه دلخواه price مفروض است در هر پست که با رقمی که قیمت کالایی است پر میشود.
    2- فید دیگری با نام رنگ و کلید color داریم که آن هم یک رنگ را برای کالا ذخیره میکند.

    سوال اول: در بخشی از صفحه فرضا قرار است آخرین ارسالها که قیمت آنها دقیقا برابر با 10000 ریال است را نمایش دهیم. (چطور می‌توانم؟)
    سوال دوم: اگر قرار باشد کالاهایی که قیمتی دقیقا برابر 10000 ریال و رنگ سبز داشته باشند نمایش داده شود چطور باید عمل کنم؟

    توضیحات:
    این کار به جستجو در مطالب ارتباط ندارد.
    کد زیر:
    query_posts(array('cat' => $MainCatOfShop, 'showposts' => 8, 'meta_key'=>'mqPrice, 'orderby'=> meta_value));
    نمونه ای است که بر اساس کلید یک زمینه عمل فیلتر را انجام میدهد و لی کاربردی برای من نداشت (البته با دستکاری به نتیجه مطلوب نرسیدم)

    از روش دیگری جهت فیلتر کردن استفاده کردم به این صورت که شرطی که در ابتدای لوپ پست وردپرس مقدار فیلد را بررسی و در صورت برابر بودن با پیشفرض معین شده از سول مدیر سایت آن پست را نمایش دهد. روش عمل میکند اما یک ایراد دارد. اگر تعداد پستهای قابل نمایش 8 باشد و در 5 پست آخر مقدار 10000 ریای را نداشته باشد تنها 3 پست نمایش داده خواهد شد. البته این منتطقی است که لوپ تعداد 8 پست را بررسی میکند.

    ممنون میشم با کمک دوستان به جاب درستی برسیم. فکر میکنم این مورد من به درد افراد دیگه هم بخوره در ضمن موارد دیگه هم وجود داره که به نظرم میتونه تاپیک پر بحثی رو ایجاد کنه که بعدا عرض میکنم.

  • DigiMohammad

    آفلاین
    عضو
    تعداد نوشته‌ها: ۲۸
    تشکر شده: ۱۳ بار
    # نوشته شده: ۱۲ سال پیش
    ۷ فروردین ۱۳۹۱ - ۱۳:۱۶

    در این سطح کسی نداریم یه راهنمایی کوچیک کنه؟!

  • بهروز ازند

    آفلاین
    عضو
    تعداد نوشته‌ها: ۱۱۲
    تشکر شده: ۷۶ بار
    # نوشته شده: ۱۲ سال پیش
    ۷ فروردین ۱۳۹۱ - ۱۶:۵۳

    شما رو به صفحه زیر ارجاع میدم
    http://codex.wordpress.org/Class_Reference/WP_Query
    به قسمت
    Custom Field Parameters
    بروید خواهید دید که کوئری مورد نظرتون رو ذکر کرده
    تو پیج بالا تمام حالتها رو به تفصیل بیان کرده
    مثالهاش تو اون صفحه هست

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    DigiMohammad
  • Parsa

    آفلاین
    عضو فعال
    تعداد نوشته‌ها: ۱۹۲۱
    تشکر شده: ۲۶۸۳ بار
    # نوشته شده: ۱۲ سال پیش
    ۷ فروردین ۱۳۹۱ - ۱۸:۴۵

    https://codex.wordpress.org/Class_Reference/WP_Query#Custom_Field_Parameters

    1-

    <?php
    $the_query = new WP_Query( array('showposts' =>  10, 'meta_key' => 'price', 'meta_value_num' => '10000', 'meta_compare' => '=', 'post_type' => 'post' ) );
    if ($the_query->have_posts()) :
    	while ($the_query->have_posts()) : $the_query->the_post();
    		the_title();
    	endwhile;
    endif;
    ?>

    برای سوال دوم. فکر میکنم تنها راه استفاده از شرط داخل حلقه است

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    DigiMohammad
  • DigiMohammad

    آفلاین
    عضو
    تعداد نوشته‌ها: ۲۸
    تشکر شده: ۱۳ بار
    # نوشته شده: ۱۲ سال پیش
    ۷ فروردین ۱۳۹۱ - ۲۱:۱۷

    ممنون از دوستان. از صفحات بهره بردم و با کمی دستکاری و این کد مشکل رو حل کردم

    query_posts(array('cat'=>$cat_ID,'meta_key'=>'mqPrice', 'meta_value'=>'10000','meta_key'=>'mqColor', 'meta_value'=>'blue'));
    البته اینکه دو فیلد در این کد قرار بگیره توی کداکس چیزی گفته نشده بود، ولی من انجام دادم به خوبی کار میکنه

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    Parsa

درباره‌ی این موضوع



برچسب‌ها