۳ شهریار حسین زاده
توضیح بیشتر در رابطه با relation
جامعه وردپرس (برنامه نویسی) ایجاد شده در ۲۵ آبان ۱۴۰۱

سلام و درود این relation که استفاده شده بود و توضیح دادین و متوجه نشدم

relation همون where هست ؟

و به جای relation دیگه چه آرگومنت هایی میشه گذاشت , مستندشو مطالعه کردم اگر توضیح بدین ممنون میشم یا اگر مثالی بود ممنونم

سلام و احترام

اگر ممکن هست دقیقه و ثانیه دقیق بخشی از ویدیو که مد نظر شما هست را بفرمایید تا بررسی شود.

با تشکر

بهنام مرادی ۲۶ آبان ۱۴۰۱، ۰۹:۰۶

سلام جناب حسین زاده عزیز

relation ارتباط بین 2 یا چند فیلد هست و از OR یا AND میشه استفاده کرد مثلا اگر بخواهیم از جدول محصول گوشی‌های موبایلی رو انتخاب کنیم که رنگشون آبی یا قرمز هست که از or اینجا استفاده میشه ینی یکی از شرط‌های رنگی ما برقرار باشه اما اگر بخوایم بگیم هم آبی‌ها و هم قرمز‌ها رو انتخاب کن از and استفاده میشه این توضیح کلیش بود حالا با کد به چه صورت به کوئری زیر دقت کنید :


$args = array(
	'post_type'  => 'product',
	'meta_query' => array(
		'relation' => 'OR',
		array(
			'key'     => 'color',
			'value'   => 'blue',
			'compare' => 'NOT LIKE',
		),
		array(
			'key'     => 'price',
			'value'   => array( 20, 100 ),
			'type'    => 'numeric',
			'compare' => 'BETWEEN',
		),
	),
);
$query = new WP_Query( $args );


در کوئری بالا گفتیم از نوشته‌های مربوط به post type محصولات ( product ) توسط meta_query محصولاتی رو انتخاب کن که رنگشون آبی نباشه ( چرا رنگشون آبی نباشه چون کلید compare برابر NOT LIKE هست ینی اگر نبود اگر LIKE تنها بود می‌شد اگر آبی بود ) یا در قسمت دوم قیمتوشن ( price ) بین 20 تا 100 بود رو انتخاب کن ( چرا بین این دو عدد چون کلید compare به معنی مقایسه برابر between به معنی بین هست ) type رو هم مشخص کردیم numeric که حتما عدد باشه چون نمی‌تونیم محصولی که قیمتش با الفبا ممکنه وارد شده باشه مثل بیست و صد رو مقایسه کنیم.

حال برای relation که مقدارش and باشه هم باید محصول آبی نباشه هم بین قیمتش بین 20 تا 100 باشه... توضیح در این بخش زیاد دادیم جلوتر هم که بریم توی پروژه‌ها زیلد با اینها کار داریم اما با این توضحیات حتما متوجه شدین...

موفق باشید

بهترین پاسخ
وحید صالحی ۲۶ آبان ۱۴۰۱، ۱۸:۱۴

حالا شما کوئری زیر رو به عنوان تمرین اینجا برامون بگید که چی کار می‌کنه ;-)

سایر دوستان هم خواستن مشارکت کنن...


کوئری جالبیه و ذهن رو بخوبی درگیر می‌کنه البته ساده هم هست با ظاهری نسبتا پیچیده و گول زننده :-)


در ضمن یه نکته داره تفاوت LIKE با = و نقیضشون رو هم بگید NOT LIKE با =!

$args = array(
	'post_type'  => 'product',
	'meta_query' => array(
		'relation' => 'OR',
		array(
			'key'     => 'color',
			'value'   => 'orange',
			'compare' => '=',
		),
                array(
                        'relation' => 'AND',
                        array(
                                'key' => 'color',
                                'value' => 'red',
                                'compare' => '=',
                        ),
                        array(
                                'key' => 'size',
                                'value' => 'small',
                                'compare' => '=',
                        ),
		),
	),
);
$query = new WP_Query( $args );


وحید صالحی ۲۶ آبان ۱۴۰۱، ۱۸:۲۲