نوشته (Post)، برگه (Page) و نوع نوشته دلخواه (Custom Post Type)
یکی از چالشهای همیشگی در مدیریت محتوای سایتهای وردپرسی، مواجهه با محدودیتهای پیشفرض این سیستم عامل است. زمانی که وارد پیشخوان وردپرس میشوید، در حالت عادی تنها دو مسیر اصلی برای انتشار محتوا پیش روی شماست: «نوشتهها» (Posts) برای مقالات وبلاگ و «برگهها» (Pages) برای صفحاتی با ساختار ثابت مثل درباره ما یا تماس با ما.
حالا یک سناریوی واقعی در فضای کار را بررسی کنیم. کارفرمایی از شما میخواهد بخش جدیدی برای نمایش نمونهکارهای شرکتی به سایت اضافه کنید. پروژههایی که هرکدام نیاز به ساختار مشخصی دارند؛ مثلاً باید دارای گالری تصاویر اختصاصی، مدتزمان اجرای پروژه، نام مشتری و جزئیات فنی باشند.
اگر بخواهید تمام این پروژهها را در همان بخش «نوشتهها» منتشر کنید، به سرعت با یک آشفتگی بزرگ روبهرو میشوید. ساختار محتوایی سایت، دستهبندیها و از همه مهمتر، معماری آدرسهای سایت (URL Structure) یکپارچگی خود را از دست میدهند. یک کارشناس سئو به خوبی میداند که آدرسدهی تمیز و تفکیک موضوعی محتوا، چقدر در درک رباتهای گوگل از ساختار سایت تأثیرگذار است.
اینجا دقیقاً همان نقطهای است که باید پای خود را فراتر از امکانات پیشفرض بگذاریم و با مفهومی به نام Custom Post Type یا «نوع نوشته دلخواه» آشنا شویم.
خلق هویتی جدید در وردپرس با Custom Post Type
خود وردپرس به صورت پایهای، «نوشته» و «برگه» را بر اساس ماهیت پستتایپها ساخته است؛ یعنی نوشتهها دارای پستتایپ post و برگهها دارای پستتایپ page هستند. خبر خوب این است که ما محدود به این دو مورد نیستیم.
با استفاده از توابع هسته وردپرس، میتوانیم یک بخش کاملاً مستقل و جدید، دقیقاً مشابه با ظاهر و امکانات نوشتهها اما با هویتی متمایز ایجاد کنیم. به عنوان مثال، میتوانیم منویی به نام «پروژهها» یا «خدمات» را مستقیماً به نوار کناری پیشخوان وردپرس اضافه کنیم. این کار به ما اجازه میدهد مدیریت محتوا را به شکل بسیار منعطفتری پیش ببریم.
برای انجام این کار، تمام عملیات در فایلی به نام functions.php قالب انجام میشود. در این فایل، با استفاده از تابعی به نام register_post_type به وردپرس اعلام میکنیم که قصد داریم یک موجودیت جدید به سیستم معرفی کنیم.
شخصیسازی ساختار؛ کنترل همهچیز در دست شماست
زمانی که در حال ساخت یک پستتایپ جدید (مثلاً برای پروژهها) هستیم، صرفاً یک نام جدید انتخاب نمیکنیم، بلکه رفتار و امکانات آن بخش را نیز به طور کامل برنامهریزی میکنیم. در زمان ثبت این موجودیت جدید، مجموعهای از پارامترها (Arguments) به ما کمک میکنند تا جزئیات را شخصیسازی کنیم:
- نامگذاری و لیبلها: به راحتی مشخص میکنیم که در منوی وردپرس چه نامی نمایش داده شود (مثلاً “پروژهها”) و دکمه ایجاد محتوای جدید چه متنی داشته باشد (مثلاً “افزودن پروژه جدید”).
- نمایش عمومی (Public): با فعال کردن این ویژگی، به وردپرس میگوییم که این پستتایپ باید در سایت دارای صفحه اختصاصی (URL) باشد و کاربران بتوانند آن را ببینند.
- مدیریت آرشیو (Has Archive): تعیین میکنیم که آیا این پستتایپ نیاز به یک صفحه بایگانی کلی (مثلاً صفحهای که تمام پروژهها را یکجا لیست کند) دارد یا خیر.
- پشتیبانی از امکانات (Supports): این یکی از جذابترین بخشها برای یک کارشناس سئو است. ما دقیقاً مشخص میکنیم که صفحه داخلی پروژه ما به چه المانهایی نیاز دارد. آیا به ویرایشگر متن (Editor) نیاز داریم؟ آیا امکان آپلود تصویر شاخص (Thumbnail) باید فعال باشد؟ آیا کاربران میتوانند زیر پروژهها کامنت بگذارند؟ هر کدام از این موارد با یک دستور ساده فعال یا غیرفعال میشوند و محیط پیشخوان را از گزینههای اضافی و گیجکننده خلوت میکنند.
سلسله مراتب فایلها (Template Hierarchy)؛ وردپرس چگونه صفحات را میخواند؟
پس از اینکه پستتایپ جدیدِ ما به پیشخوان اضافه شد و توانستیم اولین پروژه خود را در آن ثبت کنیم، چالش بعدی نحوه نمایش آن به کاربر است. وقتی کاربری روی لینک یک پروژه کلیک میکند، وردپرس از کجا میفهمد که باید چه ظاهری را به او نشان دهد؟
درک سلسله مراتب فایلها در قالبهای وردپرسی، کلید طراحی صفحات داخلی سئو شده و کاربرپسند است. وقتی یک پستتایپ اختصاصی با نام انگلیسی (Slug) مثلاً project میسازیم، رفتار وردپرس برای پیدا کردن فایل نمایشدهنده آن بسیار هوشمندانه است:
- اولویت اول: وردپرس ابتدا در پوشه قالب شما به دنبال فایلی میگردد که نام آن دقیقاً با پستتایپ شما یکی باشد؛ یعنی single-project.php. اگر شما این فایل را ساخته باشید، وردپرس دقیقاً کدهای همین فایل را برای نمایش صفحه داخلی پروژه اجرا میکند. این یعنی شما میتوانید یک طراحی کاملاً اختصاصی، متفاوت از مقالات وبلاگ، برای پروژههای خود داشته باشید.
- اولویت دوم: اگر فایلی با نام اختصاصی پیدا نکند، یک پله به عقب برمیگردد و به دنبال فایلی به نام single.php (که معمولاً نمایشدهنده مقالات است) میگردد.
- اولویتهای بعدی: در صورت عدم وجود این فایل، به سراغ singular.php میرود و در نهایت اگر هیچکدام را پیدا نکرد، از فایل پایه و اصلی قالب یعنی index.php برای نمایش محتوا استفاده میکند.
این انعطافپذیری به این معناست که شما برای توسعه ساختار سایت، هیچگاه در بنبست قرار نمیگیرید. میتوانید از همان ظاهر نوشتههای عادی برای پروژهها استفاده کنید، یا اینکه یک صفحه کاملاً اختصاصی با چیدمانی متفاوت برای آنها طراحی کنید.
آشنایی با مکانیزم ثبت پستتایپها و درک مسیری که وردپرس برای خواندن فایلها طی میکند، به شما قدرت میدهد تا از یک سیستم ساده مدیریت وبلاگ، یک پلتفرم چندمنظوره و قدرتمند بسازید. سیستمی که هم برای کارفرما در زمان ورود اطلاعات ساده و قابل فهم است و هم معماری استانداردی برای خزش و درک موتورهای جستجو دارد. درک این مفاهیم پایهای، مرز بین یک استفاده سطحی از وردپرس و مدیریت حرفهای ساختار سایت است.