درک ساختار درختی وردپرس، قسمت دوم
- نویسنده : webelizer در دسته بندی آموزش و هک, وردپرس
- 1 نظر و 3,581 بازدید
- ۹۳/۱۱/۰۵
- ساختار درختی , ساختار سلسله مراتبی
در قسمت قبلی که از اینجا می توانید مطالعه نمائید، توضیحاتی در مورد ساختار سلسله مراتبی ارائه گردید. در ادامه به برخی دیگر از موارد ساختار درختی اشاره خواهیم کرد…
صفحات آرشیو(Archive Pages):
صفحات آرشیو، صفحاتی هستند که لیستی از پست های دریافت شده از یک گروه مشخص را نمایش می دهند. از جمله این صفحات می توان به صفحات نویسنده، صفحات فهرست، صفحات از نوع پست سفارشی، صفحات داده و هر جای دیگری که صفحات به منظور تحقیق یافتن شرایط خاصی گروه بندی شده اند را نام برد.
الگوی پیشفرض برای صفحات آرشیو یا به اصطلاح دیگر صفحات بایگانی، فایل archive.php در نظر گرفته شده است. اگر بیشتر از یک فایل الگوی مشخص برای یک صفحه آرشیو شناسایی نشده باشد از فایل الگوی archive.php استفاده خواهد شد. از نظر فنی فایل archive.php مورد نیاز نیست یعنی اگر این فایل نیز موجود نباشد الگوها از فایل index.php برای رندر کردن اجزای صفحه استفاده خواهند کرد. به هر حال گنجاندن حداقل یک فایل archive.php سطح بالا با یک حلقه ، که لیست شما را سازمان دهی کند فکر خوبی به نظر می رسد. البته با این وجود فایل های الگوی دیگری نیز وجود دارند که در لایه های زیرین ساختار الگو جا خشک کرده اند که می توانند به منظور حذف فایل الگوی آرشیو پیشفرض مورد استفاده قرار گیرند.
.
.
ساختار سلسله مراتب برای صفحات آرشیو پایه، همانطور که در زیر می بینید واقعاٌ ساده هستند.
archive.php index.php
صفحه نویسنده(Author Page) :
یک صفحه نویسنده در واقع زیرمجموعه ای از یک آرشیو است که تنها پست های یک نویسنده خاص را نمایش می دهد. به عنوان مثال یک کاربر ممکن است از صفحه http://yoursite.com/author/jay دیدن کند. این صفحه همانطور که از ظاهرش مشخص است پست های نوشته شده توسط نویسنده jay را به کاربر نشان می دهد. به صورت پیشفرض این صفحه از archive.php به عنوان فایل الگوی پیشفرض استفاده خواهد کرد. با این حال اگر بخواهید دقیقتر و با اطمینان تر کار را پیش ببرید می توانید فایلی با نام author.php را به صورت دستی ایجاد کنید. از این فایل به منظور نمایش تمام صفحات نویسنده با حذف فایل الگوی پیشفرض archive.php مورد استفاده قرار می گیرد.
با این وجود حتی شما می توانید نتایج جزئی و دقیقتری بگیرید. به این صورت که یک فایل مشخص را که محتویات برای یک نویسنده مشخص نمایش می دهد ایجاد کنید. این امر با ایجاد یک فایل با نام author-[id].php و یا author-[nicename].php به صورت دلخواه محقق خواهد شد. در مثال بالا ما می توانستیم یک فایل با نام و پسوند “author-jay.php” ایجاد کنیم و این امر به صورت خودکار هر دو فایل archive.php و author.php را برای نمایش محتویات کنار می زد.
برای صفحات نویسنده، در نمونه کد زیر شما می توانید ببینید چگونه وردپرس با ساختار الگو رفتار می کند:
author-[nicename].php author-[id].php author.php archive.php index.php
صفحه فهرست(Cathegory Page) :
صفحات فهرست به همان صورت که صفحات نویسنده کار می کنند کار خود را پیش می برند. به عنوان مثال اگر ما در حال مشاهده صفحه http://yoursite.com/category/my-category باشیم به صورت پیشفرض، فایل archive.php مورد استفاده قرار خواهد گرفت. با ایجاد یک فایل category.php، الگوی پیشفرض حذف شده، و از فایل ایجاد شده نیز به منظور نمایش محتویات صفحه مذکور مورد استفاده قرار می گیرد. به مانند دیگر صفحات نویسنده، شما همچنین می توانید یک صفحه خاص را با استفاده از فایل های category-[slug].php و category-[id].php مشخص کنید. در هر دو مورد، این فایل الگو نسبت به فایل الگوی فهرست پیش فرض اولویت دارد.
ساختار سلسله مراتب برای صفحات فهرست به مانند زیر می باشد:
category-[slug].php category-[id].php category.php archive.php index.php
دیگر صفحات آرشیو:
همانطور که احتمالاٌ متوجه شدید مثال های ذکر شده در بالا به ما می فهماند که صفحات آرشیو چگونه در ساختار سلسله مراتبی الگو کار می کنند. اما باید بدانید که این قضیه تنها به صفحات فهرست و نویسنده نسبت داده نمی شود. در حقیقت این حالت می تواند برای هر طبقه موضوعی در رابطه با درک قسمت های مختلف وردپرس مورد استفاده قرار گیرد.
به عنوان مثال اگر من بخواهم یک فایل الگو که فقط بر روی صفحات tag اعمال شود ایجاد کنم، می توانم فایلی با نام tag.php یا حتی tag-[id].php برای دستیابی به نتیاج جزئی ایجاد کنم. به منظور ایجاد یک فایل الگوی مشخص برای صفحات تاریخ، کافی است فایلی با نام date.php در ساختار وردپرس ایجاد کنید.
تنها استثنای موجود برای این قضیه، استفاده از صفحات آرشیو برای انواع پست سفارشی است. به مانند هر نوع طبق بندی دیگر، فایل archive.php مورد استفاده قرار خواهد گرفت. با این حال اگر بخواهید از یک الگو برای یک نوع پست سفارشی مشخص استفاده کنید قوانین نام گذاری به صورت archive-[post_type_name].php خواهد بود.
اگر لیست کاملی از نام های فایل برای صفحات آرشیو را لازم است بدانید می توانید به لینک WordPress codex مراجعه کنید.
صفحات منفرد(Single Pages) :
با یک درک استوار و عمیق از نحوه کار صفحات آرشیو، ما می توانیم به بحث در مورد صفحات منفرد از وبسایت وردپرس شما بپردازیم. این موارد شامل صفحات انحصاری ای مانند پست های منفرد، صفحات ایستا، پست های محتوادار و پست های انحصاری در انواع پست سفارشی اشاره کرد.
صفحات پستی(Post pages):
Post pages یا صفحات پستی به هر نوع از صفحات انحصاری اطلاق می شود که در نوع پست “Posts” و یا در یک نوع پست سفارشی ای که شما ایجاد کرده اید جای گرفته اند. الگوی کلی برای پست های انحصاری فایل single.php می باشد. اگر تنها یک فایل single.php گنجانده شده باشد، تمامی پست های انحصاری شامل پست های محتوادار انحصاری و انوع پست سفارشی، با استفاده از این الگو نمایش داده خواهند شد. فایل single.php الزامی نبوده و اگر حداقل یک نوع از این فایل در ساختار سلسله مراتبی وجود نداشته باشد از فایل index.php به صورت جایگزین استفاده خواهد شد.
.
.
اگر قصد مشخص کردن یک الگو برای پست یک نوع پست مشخص دارید می توانید از رویه نام گذاری به صورت single-[post_type_name].php استفاده کنید. به عنوان مثال اگر نوع پست شما با Portfolio نام گذاری شد، سپس یک فایل الگوی مشخص باید به صورت زیر single-portfolio.php درخواست شود.
شما همچنین می توانید با استفاده از attachment.php نسبت به مشخص کردن اینکه محتویات در صفحات محتوادار یا همان attachment pages چگونه به نظر برسد تصمیم گیری کنید. یا حتی برای رسیدن به یک نتیجه جزئی تر می توانید یک نوع MIME مشخص برای محتویات(attachments) مانند image.php و video.php تنظیم کنید. در آخر سلسله مراتب برای پست های منفرد به مانند زیر به نظر می رسد:
image.php (or video.php, text.php, etc.) attachment.php single-attachment.php single-[post_type_name].php single.php index.php
صفحات(Pages):
صفحات(Pages) از جمله موارد خاص هستند و به بخش های انحصاری از محتوا که در نوع پست Pages و در ادمین وردپرس جای خشک کرده اند اطلاق می شود. مانند هر نوع محتوای دیگری شما می توانید یک الگوی پیشفرض با ایجاد یک فایل الگو با نام و پسوند page.php ایجاد کنید. به مانند دیگر فایل ها، این فایل نیز ضروری نبوده و اگر چنین فایلی وجود نداشته باشد از فایل index.php به عنوان جایگزین استفاده خواهد شد. نکته ای که وجود دارد این است که فایل Page.php تنها، الگوها برای صفحات را به نمایش در می آورد.
بر خلاف پست های منفرد، این قابلیت وجود دارد تا به صورت واقعی برای هر صفحه مشخص یک الگو با استفاده از page-[id].php یا page-[slug].php ایجاد کنید. این فایل های الگو تنها به صفحه منفردی که به آنها متصل شده اند اعمال خواهند شد. باقی فایلها با ارجاع به فایل page.php مورد رندر قرار خواهند گرفت.
جالب است بدانید صفحات نیز یک سیستم الگوی کامل را ارائه می دهند. الگوهای WordPress page واقعاٌ پیچیده هستند. اما آنها به منظور ایجاد لیوت های مختلف که می توانند به آسانی به صفحات از طریق یک منوی بازی شدنی در ادمین تصویب شوند مورد استفاده قرار گیرند. در صورتی که به اطلاعات جامعتری نیاز دارید می توانید مقاله جامع در این موضوع را که توسط آقای Kevin Muldoon نوشته شده را مورد بررسی قرار دهید. به طور کلی اگر شما یک الگوی معین را مشخص کنید هر نوع فایل یا فایل های الگوی دیگر در ساختار سلسله مراتبی رد خواهند شد. بنابراین، به عنوان مثال اگر شما یک الگو برای صفحه 4 انتخاب کنید، از آن طرف در صورتی که فایل page-4.php داشته باشید، الگویی که شما انتخاب کردید مورد استفاده قرار خواهد گرفت، نه page-4.php .
ترتیب دستوری کلی برای صفحات به مانند زیر به نظر می رسد:
custom template page-[slug].php page-[id].php page.php index.php
الگوهای دیگر:
فایل های الگویی که در بالا به آنها اشاره شد تقریباٌ اکثر صفحاتی که روی هر وبسایت وردپرس نمایش داده می شود را پوشش داده است. اما با این وجود فایل های دیگری نیز وجود دارند که چه بهتر که مورد بررسی قرار بگیرند. اولین آن فایل 404.php است. این فایل زمانی نمایش داده می شود که صفحه وب مورد نظر پیدا نشده و یا کاربر آدرس وبسایت مورد نظر خود را به شکل صحیح وارد نکرده باشد. در این مورد نیز انشالله مقاله ای جامع در آینده منتشر خواهیم کرد.
صفحه دیگری که ممکن است گاهی اوقات با آن مواجه شوید، search.php نام دارد. این الگویی است که زمانی که نتایج جست وجو نمایش داده می شود مورد استفاده قرار می گیرد. با وجود این فایل لازم است بدانید که برخی اوقات این عملیات توسط فایل index.php موجود در تم نیز مورد بررسی قرار می گیرد.
بررسی عمیق ساختار سلسله مراتبی الگو(Template hierarchy):
ساختار سلسله مراتبی الگوی وردپرس را بیش از هر چیز دیگری می توان به عنوان یک رفرنس قابل بحث و تحقیق در نظر گرفت. برای اطلاعات و تجربیات بیشتر می توانید به مقالات مختلفی که در این زمینه در سراسر نت منتشر شده است مراجعه کنید.
ترجمه شده توسط تیم آرتاباز، هادی نجار.
به به بسیار عالی
در مورد ساختار پست ها (post type) هم بیشتر توضیح دهید.
با تشکر