۴ شرکت بازی سازان منقار
مشکل در ریسالت کوئری
جامعه وردپرس (برنامه نویسی) ایجاد شده در ۲۳ خرداد ۱۴۰۲

سلام استاد. میخاستم از سه آیتم برای فیلتر کردن روی محصولات ووکامرس به این شکلی که شما در این بخش پیاده کردین استفاده کنم. ولی کوئری زیر مشکل داره. میخاستم ببینم چرا کوئری ریسالت درستی برنمیگردونه:

    $args = array(

        'post_type'   => ["product"],

        'posts_per_page' => -1,

        'post_status' => 'publish',

        'author' => $_POST['user_id'],

        'cat' => $_POST['post_term_id'],

        'meta_query'  => array(

            array(

                'key'     => '_regular_price',

                'value'   => array($min_price, $max_price),

                'type'    => 'numeric',

                'compare' => 'BETWEEN',

            ),

        ),

        'tax_query'  => array(

            array(

                'taxonomy' => 'product_cat',

                'field' => 'term_id',

                'terms' => $_POST['post_term_id'],

            ),

        ),

    );

    $the_query = new WP_Query($args);

با سلام و احترام

کدهای شما به درستی ضمیمه نشده است لطفا هنگام ضمیمه کردن کد از باکس مربوط به ان مانند زیر استفاده کنید

// code goes here

در ارتباط با سوال شما با توجه به چیزهایی که از کد شما قابل مشاهده است شما شرط‌های بسیار زیادی را برروی کوئری اعمال کرده اید ایا مطمئن هستید که محتوایی منطبق با تمامی شرط‌های شما در وردپرس تعریف شده است؟

بهنام مرادی ۲۳ خرداد ۱۴۰۲، ۱۰:۱۵
 $args = array(
        'post_type'   => ["product"],
        'posts_per_page' => -1,
        'post_status' => 'publish',
        //'cat' => $category_ids,
        'meta_query'  => array(
            array(
                'key'     => '_regular_price',
                'value'   => array($min_price, $max_price),
                'type'    => 'numeric',
                'compare' => 'BETWEEN',
            ),
        ),
        'tax_query'  => array(
            array(
                'taxonomy' => 'product_cat',
                'field' => 'term_id',
                'terms' => $_POST['post_term_id'],
                'operator' => 'IN',
            ),
        ),
        'relation' => 'OR',
        'author__in' => $_POST['user_id'],
    );
    $the_query = new WP_Query($args);
شرکت بازی سازان منقار ۲۳ خرداد ۱۴۰۲، ۱۰:۲۴

من میخام در فیلتر ترکیبی از نویسنده و کتگوری محصولات ووکامرس و همچنین مقایسه قیمت بین دو مقدار استفاده کنم. کد بالا رو هم استفاده کردم اما جواب درستی نمیده

شرکت بازی سازان منقار ۲۳ خرداد ۱۴۰۲، ۱۰:۲۵

سلام روز بخیر

من کد شمارو بررسی کردم مشکلی وجود نداره از لحاظ کدنویسی و فنی منتهی اگر نتیجه ی دلخواهتون رو نمایش نمیده پس یک سری احتمالات وجود داره

۱ - دیتاهایی که از $_POST دریافت میکنید مشکل داره که برای چک کردنش قبل از اینکه کوئری بخواد زده بشه یک دای اند دامپ کنید ببینید اطلاعات بدرستی ست میشه یا خیر

۲ - احتمال دوم اینه که تو یک صفحه چندبار کوئری زدین و تداخل پیدا کرده که برای حل این مشکل هم نیاز هست بعد از هربار استفاده از wp_query از متد wp_reset_query() استفاده کنید

اگر این راه هارو هم امتحان کردین بازم جوابی که مد نظر بود رو نگرفتین به ایمیل من یک دسترسی بدین تا روی هاست خودتون این موضوع رو بررسی کنم

ابوالفضل محجوب ۲۸ خرداد ۱۴۰۲، ۱۵:۳۶