تفاوت wp_reset_postdata() با wp_reset_query() ؟

این تاپیک 4 پاسخ و 3 مشارکت کننده دارد . آخرین آپدیت توسط :  حسین محمدی ،‏ 2 سال و 5 ماه پیش .

این تاپیک تاکنون 766 بازدید داشته است .

نویسنده پست
دوشنبه ، 30 ژوئن 2014     1:22 ب.ظ #


بهرام

Subscriber
263 پست84 تاپیک

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

میخواستم بدونم کسی تفاوت این دو تابع و اینکه هرکدوم کجا باید استفاده بشه رو میدونه؟

1  تشکر
:: این تاپیک، پاسخ تائیدشده دارد : مشاهده پاسخ تائید شده توسط سوال کننده
دوشنبه ، 30 ژوئن 2014     5:59 ب.ظ #


مهشاد کلانتری

Author
VIP
432 پست67 تاپیک

سلام

پیوست ها:
You must be logged in to view attached files.
2  تشکر
دوشنبه ، 30 ژوئن 2014     6:18 ب.ظ #


بهرام

Subscriber
263 پست84 تاپیک

ممنون خانم کلانتری اینو دیدم اما سر در نیاوردم. انگیلیسی هم سرچ کردم چندتا مطلب هم هست که دقیقا اومده تفاوت این دوتا رو بررسی کرده یه چیزایی گفته بود اما نه زبانم اینقد خوبه که خوب بگیرم مطلب رو نه php. میشه اگه شما فهمیدی واسه منم توضیح بدی لطفا

1  تشکر
دوشنبه ، 30 ژوئن 2014     7:07 ب.ظ # پاسخ تائید شده توسط سوال کننده


مهشاد کلانتری

Author
VIP
432 پست67 تاپیک

شما وقتی از WP_Query استفاده میکنید تا یه حلقه طبق سلیقه خودتون ایجاد کنید، یا چندتا حلقه در یک صفحه درست کنید، چون ممکنه حلقه ها باهم یا با یه حلقه ی دیگه تو صفحه دیگه تداخل پیدا کنند و نتیجه غیرمعمولی تولید بشه بهتره که بعد از حلقه از wp_reset_postdata استفاده کنید. مثلا:

ولی وقتی از query_posts برای ساختن حلقه استفاده میکنید بهتره که بعد از حلقه از wp_reset_query استفاده کنید. مثلا:

درواقع wp_reset_query و wp_reset_postdata ، هردوشون کوئری رو با استفاده از برگردوندن مقدار $post به حالت اولیه ریست میکنند. ولی wp_reset_query یه مرحله بیشتر انجام میده و قبل از هرکاری اول کوئری قبلی رو از بین میبره.

برای اینکه کدهای این دوتابع رو ببینید و باهم مقایسه کنید میتونید فایل wp-includes/query.php رو نگاه کنید

2  تشکر
دوشنبه ، 30 ژوئن 2014     7:26 ب.ظ #


حسین محمدی

Subscriber
482 پست60 تاپیک

عرض ادب و احترام خدمت آقای بهرام

اینجوری که من مطالعه کردم wp_reset_query کوئری های قبلی رو پاک میکنه و  یه کوئری جدید رو میتونید برای تابع query_posts استفاده کنید که خود اون هم از کلاس WP_Query استفاده میکنه همونطوری که توی مستندات هم اومده این تابع در واقع از مشکلاتی که ممکنه در پرس و جوی دیتابیس پیش بیاد جلوگیری میکنه...

خود سورس این تابع هم که در فایل wp-includes/query.php وجود داره به این شکله...

در خود این تابع هم از تابع wp_reset_postdata استفاده شده...

در جای دیگه هم اومده بود که

از wp_reset_postdata حتما بلافاصله از کلاس WP_Query استفاده کنید یعنی دقیقا موقعی که از حلقه میاد بیرون(البته ممکنه در حلقه نباشه) ولی در کل وقتی کارتون با این کلاس تموم شد از این تابع استفاده کنید و تا وقتی که این تابع رو استفاده نکردید دوباره از این کلاس استفاده نکنید...
wp_reset_query رو نیز بلافاصله پس از تابع query_posts استفاده کنید...

2  تشکر
پست 1 تا 5 (از مجموع 5 پست)

این تاپیک پاسخ تائید شده دارد و بسته شده است .