سرمایه گذاری متفاوت در سال نو 🍎🌱 ۳۵٪ تخفیف نوروزی ➕ حضور رایگان در مسترمایند نخبگان صنعت نرم‌افزار 💻✅
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ majid
فیلتر پیشرفته
جامعه وردپرس (برنامه نویسی) ایجاد شده در ۲۵ بهمن ۱۴۰۳

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

 if(empty($_POST['post_term_id']) && empty($_POST['tech_term_id']) ){
        $args = [
            'post_type' => ['post', 'tech'],
            'author' => $user_id,
            'posts_per_page' => 10,
        ];
    }else{
        $args = [
            'post_type' => ['post', 'tech'],
            'posts_per_page' => 10,
            'author' => $user_id,

//        'cat' =>  $term_id,
            'tax_query' => [
                'relation' => 'OR',
                [
                    'taxonomy' => 'category',
                    'field' => 'term_id',
                    'terms' => $_POST['post_term_id'],

                ],
                [
                    'taxonomy' => 'tech-cat',
                    'field' => 'term_id',
                    'terms' => $_POST['tech_term_id'],
                ],
            ],
        ];
    }

با سلام

حتما اول مطمئن شوید که ورودی دیتا از طریق پست درست باشه و سمت سرور به درستی گرفته شده باشه
بعدش کد زیر رو بررسی کنید، بازنویسی کردم الزاما نباید درست باشه ولی احتمالا یه کلید هایی برای حل مشکل بده بهتون

 

// تعریف آرگومان‌های پایه
$args = [
    'post_type' => ['post', 'tech'],
    'posts_per_page' => 10,
];
// بررسی وجود $user_id
if (!empty($user_id)) {
    $args['author'] = $user_id;
}
// بررسی و اضافه کردن tax_query فقط اگر دسته‌بندی انتخاب شده باشد
$tax_query = [];
if (!empty($_POST['post_term_id'])) {
    $tax_query[] = [
        'taxonomy' => 'category',
        'field' => 'term_id',
        'terms' => intval($_POST['post_term_id']), // تبدیل به عدد صحیح
    ];
}
if (!empty($_POST['tech_term_id'])) {
    $tax_query[] = [
        'taxonomy' => 'tech-cat',
        'field' => 'term_id',
        'terms' => intval($_POST['tech_term_id']), // تبدیل به عدد صحیح
    ];
}
// اضافه کردن tax_query به آرگومان‌ها اگر حداقل یک دسته‌بندی انتخاب شده باشد
if (!empty($tax_query)) {
    $args['tax_query'] = [
        'relation' => 'OR', // انتخاب OR یا AND بسته به نیاز
        ...$tax_query, // اضافه کردن شرایط دسته‌بندی
    ];
}
// اجرای کوئری
$query = new WP_Query($args);

موقع ضمیمه کردن کدها هم لطفا از این باکس‌ها استفاده کنید تا خوانا‌تر باشه

با تشکر

بهنام مرادی ۰۶ اسفند ۱۴۰۳، ۱۸:۰۸