سوال: wordpress query

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

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

تگ شده :  

نویسنده پست
جمعه ، 27 ژوئن 2014     2:03 ب.ظ #


بهرام

Subscriber
263 پست84 تاپیک

من چندتا نوع پست دیگه هم غیر از پست پیش فرض خود وردپرس تعریف کردم. بعد میخواستم تو صفحه اول هم یکی از این نوع پست های جدید رو به اسم Car بعلاوه پست پیش فرض خود وردپرس(post) به صورت راندوم نشون بده که از این دستور هم استفاده کردم واسش:
 

حالا یک دستوری هم هست که wp_reset_postdata();
فرق این دوتا چیه؟ reset query و  reset post data. ضمن اینکه من نمیدونم اصلا اینا چرا باید بعد از حلقه ی کوئری به کار گرفته بشن؟

حالا مشکل اصلی که الان بهش برخوردیم اینکه وقتی ما روی یک دسته کلیک میکنیم و آدرس صفحه به عنوان مثال میشه  http://www.mashin-baz.com/category/services باز همچنان همه پست هارو به صورت راندوم نشون میده(جای اینکه فقط پست هار همون دسته رو نشون بده) چه خود post چه نوع Car. خوب دلیلشم همون کوئری بالا هست. از دستور if(is_home()) استفاده میکنم که مشکل رو حل کنه اما نمیدونم واسه حالتی که home نبود تو else چه کوئری باید بنویسم که درست بشه. یعنی:


بعد چرا وقتی میخوام خود while رو هم تو if بیارم error میده؟ اینجوری:

0  تشکر
:: این تاپیک، پاسخ تائیدشده دارد : مشاهده پاسخ تائید شده توسط سوال کننده
جمعه ، 27 ژوئن 2014     8:59 ب.ظ #


امیر

ناظم
840 پست3 تاپیک

سلام

فایل category.php در پوشه قالبتون موجود نیست؟

1  تشکر
جمعه ، 27 ژوئن 2014     9:50 ب.ظ #


بهرام

Subscriber
263 پست84 تاپیک

نه امیر جان قالب رو خودم دارم درست میکنم. این فایل رو نداره.

0  تشکر
جمعه ، 27 ژوئن 2014     10:03 ب.ظ #


امیر

ناظم
840 پست3 تاپیک

اون فایل رو درون قالبتون قرار بدید و حلقه مورد نظرتون برای دسته ها رو درون اون فایل بنویسید.

1  تشکر
جمعه ، 27 ژوئن 2014     10:24 ب.ظ #


بهرام

Subscriber
263 پست84 تاپیک

میشه بیشتر توضیح بدی؟ یعنی چی حلقه مورد نظر برای دسته ها رو درون اون فایل بنویسم؟ کدوم حلقه؟

0  تشکر
جمعه ، 27 ژوئن 2014     10:31 ب.ظ #


امیر

ناظم
840 پست3 تاپیک

ی چیزی مانند فایل index.php هست .. منتهی برای نمایش دسته ها به کار میره (قالب نمایش دسته های سایت). زمانی که این فایل در قالب شما وجود نداشته باشه، وردپرس از archive.php و اگر این هم نباشه، از index.php استفاده میکنه.

1  تشکر
جمعه ، 27 ژوئن 2014     11:13 ب.ظ #


بهرام

Subscriber
263 پست84 تاپیک

ممنون. و حالا واسه نمایش دسته ها داخلش باید چه کدی با حلقه ای بنویسم، کلا داخل این فایل چی باید بنویسم؟ بعد اونوقت باید هرجا که خواستم فراخوانیش کنم؟ ببخشید امیر جان اما خدایی خوب نمیدونم چه جوریه

0  تشکر
جمعه ، 27 ژوئن 2014     11:17 ب.ظ #


امیر

ناظم
840 پست3 تاپیک

نیاز به فراخوانی نداره. همونطور که فایل های دیگه مانند single.php و index.php به صورت خودکار مربوط به نوشته ها و خانه هستند، این فایل نیز به صورت خودکار، قالب مربوط به دسته ها هست. شما کافیه کدهای مربوط به index.php رو درونش کپی پیست کنید و اون قسمتی از حلقه که مربوط به پست های راندم هست رو پاک کنید ..

1  تشکر
شنبه ، 28 ژوئن 2014     6:30 ب.ظ #


بهرام

Subscriber
263 پست84 تاپیک

مرسی امیر جان تا حدودی درست شده اما هنوز مشکل داره. من category.php رو ایجاد کردم. و همونطور که گفتی تمام کد های داخل index رو داخلش کپی کردم و قسمت orderbyd => rand رو حذف کردم یعنی به این صورت شد:


که قبل و بعد و داخل حلقه هم کد های مربوط به قالب و... هست. اما بازم ج نداد. یعنی میاد باز هم همه مطالب نوع post و Car رو نشون میده فقط اینبار دیگه رندوم نیستند. واسه همین اومدم کوئری و حلقه رو پاک کردم وبه جاش از همون حلقه معمولی پست بدون کوئری استفاده کردم. یعنی اینجوری:

الان این برای مطالبی که نوعشون post هست کار میکنه. یعنی مثلا وقتی رو لینکه دسته خدمات که مطالبش نوع پست هست کلیک میکنی میره به صفحه http://www.mashin-baz.com/category/services و اونجا هم فقط مطالب مربوط به دسته خدمات رو نشون میده. اما وقتی رو دسته هایی که نوع مطالبشون Car هست کلیک میکنم صفحه میاد اما بدون هیچ پستی. باز از حالت اول بهتره اما هنوز کامل نیست. نمیدونم چی باید بنویسم که درست بشه. میشه تو while حلقه and و or به کار به برم. که مثلا بگم Car and posts که هر دو نوع رو ساپورت کنه. بعد وردپرس میاد جمع میبنده یعنی میگه post و posts منم که Car تعریف کردم باید بگم Car و Cars !؟ راهنماییم کن لطفا، ممنون.

0  تشکر
شنبه ، 28 ژوئن 2014     8:01 ب.ظ #


بهرام

Subscriber
263 پست84 تاپیک

مشکل حل شد!

ممنون از امیر که وقت گذاشتی و توضیح دادی، خیلی کمک کردی اگه نه من که اصلا نمیدونستم چی به چی هست.

جریان از این قراره که وردپرس به طور پیش فرض از کاستوم پست تایپ ها در آرشیو دسته بندی و تگ ها پشتیبانی نمیکنه و این امکان رو میشه به صورت دستی و با استفاده از این تکه کد داخل function.php اضافه کرد.

این کد میاد و تمام کاستوم پست تایپ هارو مثل پست عادیه خود وردپرس به قسمت هایی که گفتم اضافه میکنه. حالا اگه بخوایم فقط یه نوع پست خواص اضافه بشه و نه همه باید 6 رو که این هست

با

جا به جا کرد که تو آرایه میشه نوع پست مورد نظر رو نوشت.

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

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

بازم ممنون واسه کمکت.

0  تشکر
پست 1 تا 10 (از مجموع 11 پست)

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