دوره مجازی قالب وردپرس (جلسه 39):پیاده سازی صفحه category و متاباکس نمایش سایدبار در برگه ها

- visibility ۴۴ mode_comment

به نام خدا و سلام.در جلسه 39 ام از دوره مجازی طراحی قالب حرفه ای وردپرس در خدمت شما هستیم با پیاده سازی صفحه category برای نمایش مطالبی که در یک دسته بندی قرار دارند.برای این کار یک فایل loop ایجاد و در تمام صفحات آرشیو شامل category,tag,archive ,... استفاده خواهیم کرد. در ادامه هم متاباکس مورد نیاز برای نمایش ساید بار در صفحه page رو پیاده سازی خواهیم کرد و نکاتی رو برای زیباسازی اون خدمت شما عرض می کنیم.

در این جلسه خواهیم  دید :

  • پیاده سازی متاباکس نمایش سایدبار در صفحه page
  • ایجاد فایل loop
  • پیاده سازی صفحه category
info توجه

این مطلب یک جلسه از دوره طراحی قالب وردپرس می باشد و برای مشاهده آن باید در دوره ثبت نام کنید.

ثبت نام در دوره طراحی قالب وردپرس

comment دیدگاه کاربران
حمید حسینی تبار

نظرتون در مورد Sage یا Underscores چیه ؟
آیا استفاده از اینا بجای قالب نوشتن از صفر بهتر نیست ؟
مزایا و معایب شون چیه ؟
چه موقع استفاده کنیم ؟
لطفا پاسخ کامل بدید ، نمیدونم چرا سطح پاسخ دادن به سوالات سطحی و فقط در حد جواب دادن است ؟!

کیوان علی محمدی

سلام این موارد کدهای قالب رو به صورت استاندارد در آورده اما خوب مخصوصا در بحث استفاده از مخزن های استاندارد ها ولی به صورت کلی باید برای قالب خودتون باید این مورد رو سفارشی کنید.به نظر بنده استفاده ازشون مناسبه و باعث افزایش سرعت توسعه قالب میشه.اینکه چه موقع استفاده کنید مطمئنا موقعی که سرعت در توسعه و کمبود منبع زمان خیلی خیلی مهمه توی پروژه.

حمید حسینی تبار

این دیدگاه های سایت چرا تایید و جواب داده نمیشن ؟

کیوان علی محمدی

پاسخ دادیم دوست عزیز.

حمید حسینی تبار

سلام
میخوام در سایدبار در کنار هر دسته (Category) یک آیکن مشخصی باشه و این آیکن رو زمان ایجاد دسته توی ادمین پنل مشخص کنم . چطور بدون استفاده از پلاگین و با کدنویسی این امکان رو به قالب اضافه کنم ؟
لطفا راهنمایی کاملی باشه که بتونم انجامش بدم
با تشکر

کیوان علی محمدی

سلام این مورد در نسخه های جدید وردپرس رو میشه با استفاده از توابعی مثل get_term_meta پیاده سازی کرد.این مطلب رو بخونید.
https://www.smashingmagazine.com/2015/12/how-to-use-term-meta-data-in-wordpress/

Hoom@n

سلام و عرض ادب خدمت دوست عزیزم جناب علی محمدی
من در درس این جلسه و در قسمتی که نمایش سایدبار رو تنظیم میکردیم به دلیل تفاوت طراحی قالب من با قالب شما، هم شرطی که برای کلاس دهی به کانتینر ست میکنیم رو بیرون حلقه ست کردم و هم خود سایدبار رو در خارج از حلقه فراخوانی کردم. اما در هر دو مورد با تابع ;()get_the_ID به راحتی و بدون مشکل آی دی مطلب رو گرفتم و همه چیز بدون مشکل کار میکنه و به راحتی نمایش سایدبار فعال و غیر فعال میشه. اما موقعی که شما انجام میدادین با تابع ;()get_the_ID کار نکرد و در inspect گرفتن هم دیدیم که آی دی مطلب رو به شما نداده و عدد 1 رو به جاش برگردونده و شما فرمودین علت از اینه که داریم تابع رو خارج از حلقه فراخوانی میکنیم. اما همونطور که عرض کردم برای من چنین مشکلی نداشت و به راحتی با این تابع آی دی مطلب رو بر میگردونه و کل فرایند کار به درستی انجام میشه. خواستم بدونم علت چی هست؟

کیوان علی محمدی

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

Hoom@n

سلام مجدد به استاد عزیزم
من کاملاً متوجه هستم که طبق مستندات وردپرس این تابع باید داخل حلقه استفاده بشه و برای همین هم این سوال رو پرسیدم. حتی خود شما وقتی کد کار نکرد به مستندات وردپرس مراجعه کردین و نشون دادین که نوشته این تابع باید داخل حلقه استفاده بشه. اما من امکان نمایش یا عدم نمایش ساید بار رو طبق اون چیزی که آموزش دادین انجام دادم و چون مرحله به مرحله کار کد نویسی رو پیش میبردم ابتدا طبق کدهای اولیه شما که با ;()get_the_ID کد رو نوشته بودین انجام دادم و همه چیز کار کرد، اما مال شما کار نکرد و آی دی رو بر نگردوند. بعد تو آموزش دیدم که شما فرمودین اون قسمت که شرط فراخوانی ساید بار رو نوشتیم داخل حلقه هست و مشکلی نداره اما اون قسمت اول که مربوط به شرط کلاس دهی مناسب به main-content بود گفتین چون خارج از حلقه هست کار نمیکنه و اصلاحش هم کردین و درست شد.
اون موقع من کدهام رو چک کردم و دیدم هم قسمت main-content مثل کدهای شما خارج از حلقه هست و هم اینکه سایدبار خارج از حلقه فراخوانی شده و مشکلی هم وجود نداره.
الان که گفتین ظاهراً طبق مستندات چنین اتفاقی نباید ممکن باشه رفتم دوباره کدهام رو چک کردم و فیلم رو هم یک بار دیدم و متوجه نکته جدیدی شدم. main-content من که مثل مال شما خارج از حلقه هست، اما در مورد فراخوانی سایدبار خواستم بدونم آیا من اشتباه معنی حلقه رو فهمیدم و دارم اشتباه میکنم ؟
در فیلم آموزشی شما فرمودین که شرط فراخوانی سایدبار با توجه به اینکه داخل حلقه هست با ;()get_the_ID کار میکنه و حتی در دقیقه 28 فیلم با Select کردن و هایلایت کردن ;endif و کل حلقه این موضوع رو نشون دادین. اما الان که فیلم رو دیدم متوجه شدم که در کد شما هم شرط فراخوانی سایدبار خارج از حلقه هست چرا که در فیلم این کد در خط 38 نوشته شده و اون ;endif که شما به عنوان پایان حلقه ازش یاد کردین ;endif همین شرط فراخوانی سایدبار بود که در خط 81 کد شماست و ;endif پایان حلقه در خط 37 حلقه رو بسته بود.
آیا من اشتباه میکنم؟
استاد عزیزم ببخشید که با این سوالات وقت شما رو میگیرم، اما چون در مستندات وردپرس هم نشون دادین که گقته این تابع فقط داخل حلقه باید استفاده بشه این سوال برام پیش اومد که پس چطوری داره خارج حلقه کار میکنه؟ خواستم مطمئن بشم که آیا معنی حلقه رو درست فهمیدم یا نه؟
اگه در اینجا منظور از حلقه همین کد if(have_posts) … هست، پس در کد من هر دو قسمت مورد نظر که از ;()get_the_ID استفاده کردیم خارج حلقه هست و در کدهای شما هم فراخوانی ساید بار که با ;()get_the_ID انجام شده خارج از حلقه هست. از نظر اصولی هم شرط فراخوانی سایدبار نمیتونه داخل حلقه باشه چون سایدبار که یه مطلب تکرار شونده نیست که داخل حلقه قرارش بدیم. ممنون میشم که اگه دارم اشتباه میکنم راهنمایی بفرمائید که این موضوع رو درست بفهمم. 😉

کیوان علی محمدی

لزوما حلقه ودرپرس باری مطالب با تعداد بالا نیست و ممکنه فقط یک مطلب داشته باشه مثل صفحات single.php و page.php و … اگه اینجا سایدبار رو داخل حلقه هم بذاریم فرقی نمیکنه چون فقط یک مطلب وجود داره. در مورد حلقه هم باید بگم برداشت شما درسته و همون کد if(have_posts) و … هستش . اینکه get_the_ID خارج از حلقه کار کرده رو دلیل رو دقیقا نمیتونم بگم فقط اینکه تابع get_the_ID وابسته به تابع get_post هستش و این تابع هم global $post رو استفاده میکنه و با این احتساب ناممکن نیست که نتونه ID مطالب رو خارج از حلقه برگردونه ولی ما بهتره طبق مستندات خود وردپرس عمل کنیم تا از صحت اجرای کد مطمئن باشیم.

سلام
من کارشناس شبکه هستم و برنامه نویس نیستم اما تفریحی با آموزش های شما جلو رفته ام تا حالا هم سوال نپرسیدم اما الان یه سوال دارم که ممنون می شم پاسخ بدید
با آموزش ورد پرس شما قدم به قدم جلو رفتم اما حالا اسلایدر من که 3 تا عکس تاره وقتی داره کار می کنه یه عکس خالی چهارمی می یاد که باعث می شه صفحه یه پرش داشته باشه خودم قادر به حل این مسئله نیستم ممنون می شم بگید چطوری درستش کنم هر نوع دسترسی هم اگر بخواهید می دم خدمتتون مثل دسترسی به پنل سایت
آدرس سایت tehran-net.com
در ضمن من تا جلسه 39 با شما پیش رفتم
ممنون و سپاس فراوان

کیوان علی محمدی

اون صفحه سفید ممکنه از متادیتایی باشه که برای اسلایدر ایجاد کردین و احتمالا تصویرش ذخیره نشده . بهتره همه این موارد رو چک کنید.

Hoom@n

سلام مجدد و تشکر از پاسختون. من هم همین رو میخواستم بدونم که ممکن هست این تابع خارج از حلقه هم جواب بده یا نه که البته در عمل دیده بودم داره کار میکنه، ولی چون شما استاد ما هستید خواستم با تایید شما مطمئن بشم.
این رو هم متوجه هستم که خود وردپرس حلقه ای رو که در صفحات page.php و single.php استفاده بشه براشون فقط یک مطلب که مربوط به اون صفحه یا اون پست هست رو لود میکنه و به همین دلیل اگه سایدبار هم داخل حلقه فراخوانی بشه مشکلی پیش نمیاد (البته باز هم این کار غیر اصولی به نظر میاد که ما در این صفحات سایدبار رو داخل حلقه فراخوانی کنیم و ممکنه به یک عادت اشتباه و بد تبدیل بشه).
اما شک من از این بود که میدیدم هم در قالب شما و هم در قالب من، سایدبار خارج از حلقه فراخوانی شده، اما شما تو فیلم فرمودین به دلیل این که تابع داخل حلقه هست ;()get_the_ID داره آی دی رو بر میگردونه و همین موضوع باعث شد یه لحظه دچار شک بشم که نکنه حلقه دیگری هم وجود داره و یا مفهوم حلقه چیزی به جز اونی هست که من متوجه شدم. 😀
به هر حال ممنون از پاسختون و زحماتی که برای آموزش ما میکشین. استاد من هر قسمت از آموزشتون رو دهها بار دیدم و باز هم میبینم و هر دفعه که میبینم یه سری نکات جدید یاد میگیرم. الان هم یکی از آرزوهای بزرگم اینه که شما شخصاً آموزشهای مراحل پیشرفته تر طراحی قالب و کلیه نکات فوق پیشرفته وردپرس و همچنین آموزشهای مربوط به طراحی قالب و افزونه های ووکامرسی رو هم بگذارید که با کمک این آموزشها ما در عمل تمامی نکات مربوط به وردپرس رو بفهمیم.
استاد عزیز، ممنون از آموزشهای خوبتون و ممنون از اینکه با نشان دادن همه اتفاقات و اشتباهاتی که ممکنه موقع طراحی قالب پیش بیاد و همچنین با نشون دادن راه حل های مختلف برای هر کدام از مسائل و آموزش روش صحیح مطالعه و جستجو، ما رو در راه حرفه ای شدن کمک میکنید.

سلامت، سربلند و پیروز باشید.

کیوان علی محمدی

ممنونم از شما و موفق باشید.

Hoom@n

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

لقمان آوند

لطفا بگید کجا چنین مشکلی دیدید. آدرس بدید که بررسی کنیم

Hoom@n

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

لقمان آوند

ندیدم من!
لطف می کنید دقیقا آدرس صفحه مربوطه رو بدید؟

وحید نوبخت

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

کیوان علی محمدی

سلام. واضح تر توضیح بدین.

Mehdi Soli

جناب آقای علی محمدی عزیز، سلام، یه ایمیل براتون فرستاده بودم چند روز پیش که برای آقای آوند هم cc شده بود. خواستم ببینم به دستتون رسیده یا خیر؟ چند تا کانال رو براتون فرستاده بودم که آموزش های سون لرن رو به صورت رایگان ارائه می دهند و آخر ایمیل هم یه درخواست داشتم. خواستم ببینم به دستتون رسیده یا نه( چون هیچ پاسخی از سمت شما یا آقای آوند عزیز دریافت نکردم) ممنون از لطف شما

کیوان علی محمدی

سلام دوست عزیز. ممنون از اطلاع رسانی شما. بله ایمیل شما رو هم دریافت کردم.

نیاز به لاگین

برای ارسال دیدگاه و یا پرسیدن سوال خود در این قسمت، باید در سایت لاگین شوید.
1 2