انکد قالب وردپرس بدون خراب شدن ساختار
انکد قالب وردپرس نسبت به افزونه ظرافت بیشتری میخواهد، چون وردپرس فایلهای قالب را بر اساس نام و ساختار پیدا میکند. اگر فایل اشتباهی را انکد کنید، ممکن است قالب اصلا شناسایی نشود یا سفارشیساز از کار بیفتد. در این مقاله میبینید کدام فایلها باید دستنخورده بمانند و چطور خروجی سالم بگیرید.
این مقاله در یک نگاه
- فایل style.css هرگز نباید انکد شود؛ وردپرس هدر قالب را از آن میخواند.
- فایلهای تمپلیت مثل single و page معمولا بهتر است خوانا بمانند.
- functions.php و کلاسهای منطقی بهترین گزینه برای انکدند.
- سفارشیساز و ویجتها بعد از انکد باید کامل تست شوند.
- قالب انکدشده روی هر هاستی با لودر فعال کار میکند.
تفاوت قالب با افزونه
وردپرس افزونه را از روی هدر فایل اصلی میشناسد، اما قالب را از روی فایل style.css و ساختار فایلها. این تفاوت بنیادی، قواعد انکد را عوض میکند.
علاوه بر این، وردپرس از سیستمی به نام Template Hierarchy استفاده میکند: بسته به نوع صفحه، دنبال فایل با نام مشخصی میگردد (مثلا single.php یا archive.php). این فایلها معمولا بیشتر ساختار نمایشی دارند تا منطق ارزشمند.
فایلهایی که نباید انکد شوند
| فایل | دلیل |
|---|---|
| style.css | وردپرس هدر و مشخصات قالب را از آن میخواند؛ اصلا PHP نیست |
| screenshot.png | تصویر پیشنمایش قالب |
| فایلهای ترجمه | ساختار زبانی خراب میشود |
| assets شامل js و css | PHP نیستند |
| theme.json | فایل پیکربندی است نه کد |
| تمپلیتهای نمایشی | معمولا مشتری میخواهد سفارشی کند |
style.css را دستکاری کنید، وردپرس قالب را نمیشناسد و در فهرست پوستهها نمایش نمیدهد. این فایل باید کاملا دستنخورده بماند.
فایلهایی که ارزش انکد دارند
ارزش واقعی یک قالب حرفهای معمولا در بخشهایی است که کاربر نمیبیند: پنل تنظیمات، کلاسهای سازنده صفحه، منطق سفارشیسازی و اعتبارسنجی لایسنس.
- functions.php قلب منطق قالب؛ مهمترین گزینه برای انکد.
- کلاسهای داخل inc یا includes منطق کسب و کار و ابزارهای اختصاصی.
- کلاس اعتبارسنجی لایسنس اولویت اول از نظر محافظتی.
- پنل تنظیمات قالب بخشی که معمولا سرمایهگذاری زیادی رویش شده.
قاعده کلی همان است که در کدام فایلها را نباید انکد کرد توضیح داده شده: منطق انکد شود، نمایش و داده خوانا بماند.
تست قالب انکدشده
قالب بیشتر از افزونه با هسته وردپرس تعامل دارد، پس تست کاملتری لازم دارد. این موارد را حتما بررسی کنید.
شناسایی قالب آیا در بخش پوستهها با نام و تصویر درست ظاهر میشود؟
سفارشیساز آیا تنظیمات باز میشود و تغییرات ذخیره میشود؟
انواع صفحات صفحه اصلی، نوشته تکی، آرشیو، برگه و صفحه ۴۰۴ را باز کنید.
ویجتها و منوها آیا نواحی ویجت و منوها درست ثبت شدهاند؟
مشکلات رایج
| مشکل | علت | راهحل |
|---|---|---|
| قالب در فهرست پوستهها نیست | style.css دستکاری شده | آن را دستنخورده بگذارید |
| سفارشیساز خطا میدهد | مبهمسازی نام کلاسها | مبهمسازی را برای آن بخش غیرفعال کنید |
| تمپلیتی بارگذاری نمیشود | نام فایل تغییر کرده | نام فایلها باید دقیقا حفظ شود |
| خطای needs to be installed | لودر روی هاست فعال نیست | راهنمای رفع خطا |
برای مقایسه با فرایند افزونه، انکد افزونه وردپرس را ببینید و برای مشکلات عمومی وردپرس، مشکلات رایج انکد در وردپرس. اطلاعات فنی در سایت ionCube موجود است.
سوالات متداول
style.css را میتوانم انکد کنم؟
خیر. وردپرس مشخصات قالب را از هدر این فایل میخواند و اصلا PHP نیست. اگر دستکاری شود، قالب شناسایی نمیشود.
تمپلیتها را انکد کنم؟
معمولا نه. این فایلها بیشتر ساختار نمایشی دارند و مشتری اغلب میخواهد سفارشیشان کند. تمرکز را روی functions و کلاسهای منطقی بگذارید.
سفارشیساز بعد از انکد خطا میدهد، چرا؟
معمولا به دلیل مبهمسازی نام کلاسهایی که به صورت رشتهای فراخوانی میشوند. مبهمسازی را برای آن بخش غیرفعال کنید.
قالب انکدشده روی همه هاستها کار میکند؟
بله اگر ionCube Loader فعال باشد که روی اکثر هاستهای اشتراکی فعال است یا با یک تیک فعال میشود.
نام فایلها بعد از انکد تغییر میکند؟
خیر و نباید هم تغییر کند. وردپرس تمپلیتها را از روی نام پیدا میکند، پس ساختار و نام فایلها باید دقیقا حفظ شود.
مطالب مرتبط: انکد افزونه وردپرس · مشکلات انکد وردپرس · کدام فایلها را انکد نکنیم
PHP