-
August 31st, 2017, 12:04
#1
یکی از پارامترهای wp_query گیجم کرده !!!
سلام و درود
توی کلاس wp_query برای مثلا اگر بخوایم پست های یه هفته پیش رو بگیریم باید پارامتر کلاس رو اینطوری وارد کنیم.
کد PHP:
$query = new WP_Query(array('date_query' => array(array('before' => '1 week'))));
ولی به طرز معجزه آسایی اصلا مورد بالا جواب نمیده و باید از این کد استفاده کرد:
کد PHP:
$query = new WP_Query(array('date_query' => array(array('after' => '1 week ago'))));
حالا خواهشا یکی از اساتید بیاد بگه که چرا کد اول که بسیار ملموس تر از کد دومه عمل نمیکنه ولی کد دوم عمل میکنه؟
تشکر
-
-
August 31st, 2017 12:04
# ADS
-
August 31st, 2017, 12:38
#2
عضو دائم
پاسخ : یکی از پارامترهای wp_query گیجم کرده !!!
باسلام، در کد اول از relative فرمت 1 week استفاده شده که تاریخ 1 هفته آینده را به شما میدهد، باید از 1 week ago استفاده کنید تا تاریخ 1 هفته گذشته را دریافت کنید.
-
تعداد تشکر ها ازT.Toosi به دلیل پست مفید
-
August 31st, 2017, 12:57
#3
پاسخ : یکی از پارامترهای wp_query گیجم کرده !!!

نوشته اصلی توسط
T.Toosi
باسلام، در کد اول از relative فرمت 1 week استفاده شده که تاریخ 1 هفته آینده را به شما میدهد، باید از 1 week ago استفاده کنید تا تاریخ 1 هفته گذشته را دریافت کنید.
آخه شما after => '1 week ago' رو به فارسی ترجمه کنید مسخره میشه معنیش میشه بعد از یه هفته پیش توی before هم که ago بدی بازم جواب نمیده.
در کل خوب یه پارامتر میذاشت اگر before میخواستیم که ago میذاشتیم نمیخواستیم هم نمیذاشتیم دیگه.
فلسفه این حرکت رو نمیفهمم.
لطفا بیشتر توضیح بدید.
-
-
August 31st, 2017, 13:12
#4
عضو دائم
پاسخ : یکی از پارامترهای wp_query گیجم کرده !!!

نوشته اصلی توسط
naghmesra
آخه شما after => '1 week ago' رو به فارسی ترجمه کنید مسخره میشه معنیش میشه بعد از یه هفته پیش توی before هم که ago بدی بازم جواب نمیده.
در کل خوب یه پارامتر میذاشت اگر before میخواسم که ago یذاشتیم نمیخواستیم هم نمیذاشتیم دیگه.
فلسفه این حرکت رو نمیفهمم.
لطفا بیشتر توضیح بدید.
ببینید 1 week اگر timestamp ـش را از strtotime بگیریم و تبدیل به تاریخ خوانا بکنیم خروجی میشه : 09/07/2017 (تاریخ 1 هفته آینده از امروز است) در کد اول گفتید پست های قبل این تاریخ را بگیر، حالا اگر نمایش نمیدهد به دلیل post per page یا لیمیت بودن دریافت query است که اگر زیاد کنید احتمالا پست های آخرتون را میبینید مگر اینکه کلا روی سایت پست نباشد، در کد دوم خروجی تاریخ خوانا میشود : 08/24/2017 (تاریخ 1 هفته گذشته از امروز است) که اگر به طور مثال post per page پنج تا باشد و از after استفاده کرده باشید، 5 تا پستی که بعد از تاریخ 08/24/2017 در سایت ثبت شده باشد به شما نمایش میدهد.
فرمت های 1 week ago یا +1 week ago یا 1 week ago برای دریافت تاریخ دقیق توسط تابع strtotime است، before و after برای طریقه compare و query زدن وردپرس بروی تاریخ بدست آمده در دیتابیس است.
-
تعداد تشکر ها ازT.Toosi به دلیل پست مفید
-
August 31st, 2017, 13:26
#5
پاسخ : یکی از پارامترهای wp_query گیجم کرده !!!

نوشته اصلی توسط
T.Toosi
ببینید 1 week اگر timestamp ـش را از strtotime بگیریم و تبدیل به تاریخ خوانا بکنیم خروجی میشه : 09/07/2017 (تاریخ 1 هفته آینده از امروز است) در کد اول گفتید پست های قبل این تاریخ را بگیر، حالا اگر نمایش نمیدهد به دلیل post per page یا لیمیت بودن دریافت query است که اگر زیاد کنید احتمالا پست های آخرتون را میبینید مگر اینکه کلا روی سایت پست نباشد، در کد دوم خروجی تاریخ خوانا میشود : 08/24/2017 (تاریخ 1 هفته گذشته از امروز است) که اگر به طور مثال post per page پنج تا باشد و از after استفاده کرده باشید، 5 تا پستی که بعد از تاریخ 08/24/2017 در سایت ثبت شده باشد به شما نمایش میدهد.
فرمت های 1 week ago یا +1 week ago یا 1 week ago برای دریافت تاریخ دقیق توسط تابع strtotime است، before و after برای طریقه compare و query زدن وردپرس بروی تاریخ بدست آمده در دیتابیس است.
آقا شرمنده انگار من خیلی خنگم.
شما این دو کد زیر رو ترجمه فارسیش رو بگید.
کد PHP:
$query = new WP_Query(array('date_query' => array(array('before' => '1 month'))));
$query = new WP_Query(array('date_query' => array(array('after' => '1 month'))));
اصلا دو کد بالا معنی داره؟
-
-
August 31st, 2017, 13:37
#6
عضو دائم
پاسخ : یکی از پارامترهای wp_query گیجم کرده !!!

نوشته اصلی توسط
naghmesra
آقا شرمنده انگار من خیلی خنگم.
شما این دو کد زیر رو ترجمه فارسیش رو بگید.
کد PHP:
$query = new WP_Query(array('date_query' => array(array('before' => '1 month'))));
$query = new WP_Query(array('date_query' => array(array('after' => '1 month'))));
اصلا دو کد بالا معنی داره؟
1- پست هایی که قبل از تاریخ 08/31/2017 (تاریخ یک ماه آینده از امروز) در سایت ثبت شده است دریافت میکند.
2- پست هایی که بعد از تاریخ 08/31/2017 (تاریخ یک ماه آینده از امروز) در سایت ثبت شده است دریافت میکند.
-
تعداد تشکر ها ازT.Toosi به دلیل پست مفید
-
August 31st, 2017, 14:02
#7
پاسخ : یکی از پارامترهای wp_query گیجم کرده !!!

نوشته اصلی توسط
T.Toosi
1- پست هایی که قبل از تاریخ 08/31/2017 (تاریخ یک ماه آینده از امروز) در سایت ثبت شده است دریافت میکند.
2- پست هایی که بعد از تاریخ 08/31/2017 (تاریخ یک ماه آینده از امروز) در سایت ثبت شده است دریافت میکند.
توضیح خوبی بود.
در اصل:
1- پست هایی که قبل از تاریخ 08/31/2017 (تاریخ یک ماه آینده از امروز) در سایت ثبت شده است دریافت میکند.
این همیشه کل پست های سایت میشه.
2- پست هایی که بعد از تاریخ 08/31/2017 (تاریخ یک ماه آینده از امروز) در سایت ثبت شده است دریافت میکند.
این هم همیشه خالی میشه.
درسته؟
حالا بی زحمت این دو مورد رو با ago هم بگید یعنی 1 month ago دیگه شرمنده میکنید.
-
-
August 31st, 2017, 14:09
#8
عضو دائم
پاسخ : یکی از پارامترهای wp_query گیجم کرده !!!

نوشته اصلی توسط
naghmesra
توضیح خوبی بود.
در اصل:
این همیشه کل پست های سایت میشه.
این هم همیشه خالی میشه.
درسته؟
حالا بی زحمت این دو مورد رو با ago هم بگید یعنی 1 month ago دیگه شرمنده میکنید.
بله مورد دومی بی کاربرد است چون آینده است.
تاریخ امروز : 08/31/2017 (month/day/year)
تاریخ یک ماه گذشته از امروز : 07/31/2017 (month/day/year)
1- پست هایی که قبل از تاریخ 07/31/2017 در سایت ثبت شده است دریافت میکند.
2- پست هایی که بعد از تاریخ 07/31/2017 در سایت ثبت شده است دریافت میکند.
-
تعداد تشکر ها ازT.Toosi به دلیل پست مفید
-
August 31st, 2017, 14:15
#9
پاسخ : یکی از پارامترهای wp_query گیجم کرده !!!

نوشته اصلی توسط
T.Toosi
بله مورد دومی بی کاربرد است چون آینده است.
تاریخ امروز : 08/31/2017 (month/day/year)
تاریخ یک ماه گذشته از امروز : 07/31/2017 (month/day/year)
1- پست هایی که قبل از تاریخ 07/31/2017 در سایت ثبت شده است دریافت میکند.
2- پست هایی که بعد از تاریخ 07/31/2017 در سایت ثبت شده است دریافت میکند.
آقا عالی بود کاملا ابهامات رفع شد.
موفق باشید
-
تعداد تشکر ها از naghmesra به دلیل پست مفید