💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۵ Arash Sob
نحوه ایجاد کوئری برای زیر دسته
جامعه وردپرس (برنامه نویسی) ایجاد شده در ۱۳ فروردین ۱۴۰۲

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

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

برای به دست آوردن پستهایی با زیر دسته‌های مشابه چگونه باید کوئری بزنیم؟

مثال میزنم

مثلا در یک فروشگاه دسته مادر لوازم خانگی هست اما صاحب فروشگاه در نظر دارد که وقتی کاربر وارد یکی از لوازم خانگی میشود(یکی از دسته‌های مادر محصولات) به عنوان پست مرتبط مثلا اگر وارد یکی از محصولات آشپزخانه شده محصولات مرتبط همون زیر دسته بهش نمایش داده بشه

و اگر وارد لوازم الکترونیک شده محصولات مرتبط لوازم الکترونیک

توضیح : در این مثال لوازم آشپزخانه یا الکترونیک به صورت زیر دسته تعریف و دسته مادر لوازم خانگی هستند

مثال دوم:

مثلا اگر وارد دسته کتاب‌ها (به عنوان دسته مادر) شد فقط از زیر دسته مربوطه به کاربر کتاب نمایش داده شود

مثلا اگر دارد کتاب آموزش زبان انگلیسی میبیند کتاب رمان به ایشان نشان ندهند

یا مثلا اگر کتاب در زمینه موفقیت میبیند در همون زمینه محصول مشابه به ایشان نمایش داده شود

توضیح: در این مثال هم دسته اصلی (کتاب) و (موفقیت) ، (زبان اینگلیسی) و یا (برنامه نویسی) ، (رمان) و ژانر‌های دیگر به عنوان زیردسته تعریف شده اند

با تشکر و پوزش از توضیح زیاد و زدن چند مثال .

سلام و احترام

سوالتون رو مطالعه کردم ولی به نظر فقط انرا سخت و پیچیده مطرح کرده اید وگرنه ماهیت کار مشابه همه سایت‌ها هست.

وقتی شما در یک دسته بندی خاص هستید ( به طور مثال همان لوازم خانگی که مطرح کردید ) کافیست تمامی پست هایی که در همان دسته بندی هستند را با کوئری از وردپرس گرفته و نمایش دهید که شامل تمامی زیر دسته هم خواهد بود.

برای زمانی هم که یک محصول از یک دسته بندی خاص را مشاهده می‌کند ( به طور مثال کتاب در زمینه موفقیت ) کافیست کوئری به دیتابیس زده و دقیقا محصولات موجود در همان دسته بندی را دریافت کنید.

جمع بندی : وقتی کاربر در هر دسته بندی هست محصولات همان دسته بندی را نمایش دهید » وقتی در حال مشاهده دسته بندی مادر هست تمامی محصولات همان دسته بندی که شامل تمامی زیر دسته‌ها هم خواهد بود نمایش دهید وقتی هم در یک زیر دسته خاص هست همان مورد را.

موفق باشید

بهنام مرادی ۱۴ فروردین ۱۴۰۲، ۱۷:۱۶

با عرض سلام مجدد و تشکر

شاید بنده مسئله رو بد عرض کردم

ولی متوجه پاسخ شما نشدم

در کوئری که میزنیم $args جزئیاتی دارد یکی از انها تعیین نوع پستهاست که یا بر اساس تگ‌ها یا دسته بندی‌ها انرا تعیین میکنیم یعنی:

"cat" => $cat_id

وقتی اینکار را میکنیم پاسخی که از دیتابیس برمیگردد کلیه محصولات آن دسته را اعم از زیر دسته‌های مختلف برمیگرداند

با پاسخ شما بنده متوجه نشدم چه طور باید کوئری بزنیم که تنها زیر دسته ای خاص برگردد. با تشکر و پوزش

Arash Sob ۱۴ فروردین ۱۴۰۲، ۱۷:۲۶

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

چون متوجه نشدم که دقیقا برای دریافت هر زیر دسته چه طور کوئری تنظیم گردد

اگر لازم هست میتوانم دوباره پرسش خود را بپرسم.

Arash Sob ۱۵ فروردین ۱۴۰۲، ۱۵:۲۲

سلام مجدد

هر دسته بندی یک ایدی خاص دارد » شما میتوانید با ان ایدی تمامی پست‌های موجود در همان دسته را دریافت کنید.

ولیکن اگر سوالی دارید به صورت شفاف‌تری مطرح کنید

موفق باشید

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

برای اینکه دسته‌های مادر رو نشون ندی یه راه ساده هست. هر کتگوری یه مقدار parent داره، وقتی که صفر باشه یعنی این دسته مادر هست. می‌تونی

 $cat->parent رو چک کنی هر کدوم صفره نشون ندی. 

ولی اگر چند لایه دسته بندی داشته باشی و بخوای دسته‌ها توی آخرین لایه رو فقط نشون بدی، راهی که به ذهنم می‌رسه اینه که یه تابع بنویسی که پرنت دسته‌ها رو چک کنه و مشخص کنه چند تا پرنت دارن و عمق اون دسته رو نشون بده. بعد دسته ای که بیشتری عمق رو داره نمایش بدی. کدشو ننوشتم تا حالا ولی یه چیزی شبیه این میشه:

function cat_depth($cat, i=0){
	if ($cat->parent == 0) return i;
	cat_depth($cat,i++);
}
آزاده نوری ۱۹ شهریور ۱۴۰۳، ۰۵:۴۲