نصب قالب وردپرس: ۳۲ فایل از ۶۰ فایل قالب خطای style.css داد، فایل درست کدام است؟
- سمانه جعفری
- مطالعه در 7 دقیقه
- آبان 13, 1405
- بدون دیدگاه
-
افزونه فیلدهای سفارشی پیشرفته (ACF Pro) | Advanced Custom Fields (ACF) Pro
امتیاز 1.00 از 5۵۴۰,۰۰۰ تومان -
قالب وردپرسی مشاوره مهاجرت لیویزا | Liviza
۷۸۰,۰۰۰ تومان
-
افزونه بهینهسازی و افزایش سرعت مرغ مگسخوار | WPMU DEV Hummingbird Pro
۵۸۰,۰۰۰ تومان
-
افزودنی دیجیتس ورود و ثبتنام سریع با یک کلیک | Digits One Click Login/Signup
۵۸۰,۰۰۰ تومان
برای آزمایش نصب قالب وردپرس، ۶۰ قالبی را که در فروشگاه ما بیشترین دانلود را دارند، همانطور که فروشگاه میدهد با نصبکننده خود وردپرس نصب کردیم (۱۱ آبان ۱۴۰۵، وردپرس ۷٫۱٫۴ فارسی). ۲۷ فایل نصب شد. ۳۲ فایل رد شد، با دو جمله پشت سر هم: «این بسته نمیتواند نصب شود» و اینکه قالب فایل style.css را ندارد. یک فایل هم زیپ خراب بود و وردپرس نتوانست آن را باز کند (پیام آن در نصب با خط فرمان وردپرس PCLZIP_ERR_BAD_FORMAT بود).
در هیچکدام از آن ۳۲ فایل قالب کم نبود. فایل دانلودی «بسته کامل» بود: کنار قالب چیزهای دیگری هم بود، مثل مستندات، زیپ افزونهها یا دادههای نمونه، و خود قالب زیپ جداگانهای داخل آن بود. هر ۴۰ زیپ قالب اصلی که در آن ۳۲ بسته پیدا کردیم نصب شد.
قاعده این است: زیپی را آپلود کنید که با بازکردنش یک پوشه میبینید و style.css درست داخل آن پوشه است. اگر بهجای آن مستندات و چند زیپ دیدید، زیپی را آپلود کنید که اسم قالب را دارد، نه خود بسته را.
هر فایل را با WP-CLI، ابزار خط فرمان وردپرس، و دستور wp theme install نصب کردیم. این دستور همان نصبکنندهای را اجرا میکند که صفحه بارگذاری پوسته اجرا میکند. تصویر صفحههای نصب را در مرورگر گرفتیم و برای آپلودهای مرورگر دو سقف آپلود PHP، upload_max_filesize و post_max_size، را روی ۶۴ مگابایت گذاشتیم. روی هاست واقعی (cPanel و DirectAdmin) و با نصبکنندههای اختصاصی خود قالبها آزمایش نکردیم.
نصب قالب وردپرس با بسته کامل، خطای style.css میدهد
وردپرس زیپ را باز میکند. اگر فقط یک پوشه در آن باشد، محتوای همان پوشه را بررسی میکند، وگرنه خود محتوای زیپ را، و اگر style.css در آن سطح نباشد، این مرحله نصب را متوقف میکند. راهنمای قالبنویسی وردپرس هم میگوید این فایل برای هر قالب لازم است و باید در پوشه اصلی قالب باشد، نه در زیرپوشه.
بسته کامل The Hanger را همانطور که دانلود شده بود در «نمایش > پوسته > افزودن پوسته > بارگذاری پوسته» آپلود کردیم (پیشخوان وردپرس به قالب «پوسته» میگوید):

وردپرس فقط میگوید در جایی که نگاه کرد style.css نبود. اینکه زیپ دیگری داخل بسته هست را خودتان باید ببینید.
زیپ قالب در بسته تا سه پوشه پایینتر است
بستهها شکل یکسانی نداشتند. جای کمعمقترین زیپ قالب در ۳۲ بسته:
| زیپ قالب کجاست | بسته | نمونه |
|---|---|---|
| در بالاترین سطح بسته، کنار فایلهای دیگر | ۱۱ | Royal، Brooklyn |
| یک پوشه پایینتر | ۱۶ | Pearl، Real Places |
| دو پوشه پایینتر | ۴ | The Hanger، XStore |
| سه پوشه پایینتر | ۱ | University |
نمودار زیر دو فایل را کنار هم میگذارد: Astra قالب را مستقیم میدهد و در The Hanger قالب دو پوشه پایینتر است.

پیش از آپلود:
- فایل دانلودی را باز کنید و فقط نگاه کنید.
- اگر پوشهای دیدید که style.css درست داخل آن است، همین فایل را آپلود کنید.
- اگر مستندات و زیپ دیدید، زیپی را که اسم قالب را دارد از بسته بیرون بیاورید و آپلود کنید. در زیپهای داخل این ۳۲ بسته، اسم همه زیپهای قالب فرزند child داشت و اسم هیچکدام از زیپهای قالب اصلی نداشت.
سه بسته چند زیپ قالب دارند: Phlox Pro، Hostiko و Archi. در Hostiko و Archi نام پوشهها صفحهساز را میگوید (Elementor، WPBakery، گوتنبرگ) و Archi یک نسخه RTL هم دارد؛ کدام نسخه برای سایت شما درست است را در مستندات سازنده بخوانید.
زیپ قالب از خود بسته کوچکتر است: در ۲۹ بستهای که فقط یک زیپ قالب دارند، میانه حجم دانلود ۸۶٫۳ مگابایت است و میانه حجم زیپ قالب ۱۵٫۰ مگابایت (مگابایت: ۱٬۰۴۸٬۵۷۶ بایت، واحد خود PHP).
سقفهای پیشفرض PHP بیشتر این فایلها را رد میکنند
PHP بهطور پیشفرض فایل آپلودی بزرگتر از ۲ مگابایت (upload_max_filesize) و درخواستی بزرگتر از ۸ مگابایت (post_max_size) را نمیپذیرد، و راهنمای PHP همین دو پیشفرض را مینویسد. از ۶۰ فایل، ۵۷ فایل از ۲ مگابایت و ۴۷ فایل از ۸ مگابایت بزرگترند، و کوچکترین زیپ قالب هم در ۳۱ بسته از ۳۲ بسته از ۲ مگابایت و در ۲۲ بسته از ۸ مگابایت بزرگتر است؛ پس با سقفهای پیشفرض بیرون آوردن زیپ قالب از بسته کافی نیست. درخواست بزرگتر از ۸ مگابایت پیام «پیوندی که شما دنبال میکردید منقضی شده است» را میدهد، و فایلی که فقط از ۲ مگابایت بزرگتر باشد پیامی میدهد که اسم upload_max_filesize در آن است. هر دو با اندازههایشان در آزمایش قالب وودمارت آمده، همراه با راه دیگری که مستندات وودمارت میگوید: آپلود با مدیر فایل هاست و استخراج در پوشه قالبها. مقدار این دو سقف روی هاست خودتان را از میزبانتان بپرسید.
زیپ قالب فرزند را اول آپلود نکنید
در ۲۴ بسته زیپ قالب فرزند هم هست، جمعا ۲۶ زیپ. قالب فرزند بدون قالب مادر خود کار نمیکند، اما وردپرس نصب آن را رد نمیکند. هر ۲۶ زیپ قالب فرزندی که در بستهها بود نصب شد. در ۲۳ مورد وردپرس گفت قالب مادر پیدا نشد؛ در آزمایش The Hanger پیوند «فعال کردن» نبود و فقط پیوند بازگشت به صفحه پوستهها ماند.
در سه مورد وردپرس کار دیگری کرد. نام پوشه مادر را که در سربرگ قالب فرزند آمده در WordPress.org جستوجو میکند. برای این سه قالب آنجا قالبی با همان نام بود، و وردپرس آن را دانلود کرد و بهجای قالب فروشگاه مادر حساب کرد:
| قالب مادر در فروشگاه | آنچه وردپرس از WordPress.org نصب کرد |
|---|---|
| Royal ۶٫۵٫۲ | Royal ۱٫۱٫۹ از N. Venkat Raj |
| University ۲٫۱٫۵ | University ۱٫۳ از Viva Themes |
| Composer ۳٫۵٫۴ | Composer ۰٫۱٫۶ از Han، و بعد Omega ۱٫۳٫۰ که مادر همین Composer است |
صفحه نصب زیپ فرزند Royal این است، وقتی قالب مادر نصب نبود:

پوشهای که وردپرس برای Royal ساخت همان پوشهای است که زیپ قالب مادر فروشگاه هم میخواهد، پس آپلود آن زیپ به صفحه «از قبل موجود» میرسد. پس اول قالب مادر را آپلود کنید و بعد قالب فرزند را.
بارگذاری دوباره قالب، پوشه قبلی را پاک میکند
وقتی پوشه قالب از قبل هست، وردپرس چیزی نصب نمیکند و جدول نسخه، نویسنده و حداقل نسخه وردپرس و PHP را کنار هم میگذارد. در آزمایش Royal همین جدول مشکل بخش قبل را نشان داد: نصبشده Royal ۱٫۱٫۹ از N. Venkat Raj و بارگذاریشده Royal ۶٫۵٫۲ از 8theme.

دکمه «بارگذاری شده را جایگزین فعلی نمایید» پوشه قبلی را پاک میکند و نسخه تازه را بهجای آن میگذارد. در آزمایشی جدا Saasland را که از قبل (با WP-CLI) نصب بود دوباره از صفحه بارگذاری آپلود کردیم و پیش از آن فایلی داخل پوشه قالب گذاشتیم؛ بعد از جایگزینی فایل نبود (پوشه از ۳۷ ورودی به ۳۶ رسید) و صفحه از پاک شدن نسخه قدیمی خبر داد. در آزمایش Loco Translate الگوی ترجمهای که داخل پوشه قالب بود هم با همین جایگزینی رفت، و برای افزونهها همین صفحه را در آپدیت دستی افزونه با زیپ دیده بودیم. پیش از دکمه جایگزینی از پوشه قالب بکاپ بگیرید؛ خود صفحه هم همین را میگوید.
فایل بدون پوشه در ۷٫۱٫۴ با نامی تصادفی نصب میشود
در یکی از ۶۰ فایل، TheFox، فایلهای قالب بدون هیچ پوشهای در ریشه زیپ بود. دو زیپ داخل بستهها هم همینطور بودند: veda.zip در بسته Veda و noor-child.zip در بسته Noor. در وردپرس ۷٫۱٫۴ این زیپها نصب میشوند، اما پوشه قالب از نام خود فایل ساخته میشود و ۱۶ نویسه تصادفی هم به آن میچسبد. نام فایل TheFox در فضای ذخیره فروشگاه با یک عدد شروع میشود و آن عدد هم در پوشه آمد:
1779389582-thefox-responsive-multi-purpose-wordpress-theme-3.9.79-a8N6aayknXOVc2Gx
برای آزمایش یک قالب فرزند با دو سطر سربرگ نوشتیم که قالب مادرش thefox است. وردپرس گفت باید قالبی به نام thefox نصب شود، چون پوشهای با این نام نبود. اگر زیپی فایلهای قالب را بدون پوشه دارد، آنها را داخل پوشهای به نام قالب بگذارید و دوباره زیپ کنید: وقتی همین کار را با TheFox کردیم، پوشه thefox ساخته شد.
صفحه «اطلاعات اتصال» یعنی وردپرس نتوانست خودش فایل بنویسد
در نصب آزمایشی ما، پوشه wp-content و پوشه قالبها را برای کاربر وبسرور غیرقابل نوشتن کردیم. وردپرس بهجای نصب، صفحهای با نام میزبان، شناسه FTP و رمز FTP نشان داد:

با برگرداندن مالک پوشهها به کاربر وبسرور، این صفحه در آزمایش ما از بین رفت. روی هاست شما علت میتواند چیز دیگری باشد، مثل ثابت FS_METHOD در wp-config.php، پس به خود صفحه نگاه کنید: اگر اطلاعات FTP ندارید، صفحه میگوید با میزبان تماس بگیرید. اگر به هاست دسترسی ندارید یا نمیخواهید خودتان زیپها را باز کنید، درخواست نصب قالب را ثبت کنید؛ خدمات ما «نصب قالب و راهاندازی افزونه» را دارد.
پرسشهای متداول
چرا موقع آپلود قالب پیام «این بسته نمیتواند نصب شود» میآید؟
وردپرس در سطحی که زیپ را باز کرد، فایل style.css را پیدا نکرده است. در ۳۲ فایل از ۶۰ فایل قالب فروشگاه ما علت این بود که فایل دانلودی بسته کامل بود و زیپ خود قالب داخل آن؛ همان زیپ داخل بسته را آپلود کنید.
زیپ درست قالب در بسته دانلودی کدام است؟
زیپی که اسم قالب را دارد، نه زیپ افزونهها یا دادههای نمونه که در بعضی بستهها هست؛ با بازکردنش پوشهای میبینید که style.css درست داخل آن است. در زیپهای داخل این ۳۲ بسته، اسم همه زیپهای قالب فرزند child داشت و اسم هیچکدام از زیپهای قالب اصلی نداشت.
اگر زیپ قالب فرزند را قبل از قالب مادر آپلود کنم چه میشود؟
وردپرس قالب فرزند را نصب میکند، قالب مادر را پیدا نمیکند و در آزمایش ما گزینه فعال کردن را نشان نداد. اگر در WordPress.org قالبی با نام پوشه مادر باشد، وردپرس همان را نصب میکند؛ این برای ۳ زیپ فرزند از ۲۶ زیپ پیش آمد.
بارگذاری دوباره قالبی که نصب است چه چیزی را پاک میکند؟
دکمه «بارگذاری شده را جایگزین فعلی نمایید» پوشه قبلی را پاک میکند و نسخه تازه را بهجای آن میگذارد. در آزمایش ما فایلی که خودمان داخل پوشه قالب گذاشته بودیم بعد از جایگزینی نبود.
صفحه «اطلاعات اتصال» با فیلدهای FTP هنگام نصب قالب یعنی چه؟
وردپرس نتوانسته خودش در پوشه قالبها فایل بنویسد و اطلاعات FTP میخواهد. در آزمایش ما با غیرقابل نوشتن کردن پوشهها برای کاربر وبسرور همین صفحه آمد؛ اگر اطلاعات FTP ندارید، صفحه میگوید با میزبان تماس بگیرید.
- سمانه جعفری
- مطالعه در 10 دقیقه
- بدون دیدگاه
- سمانه جعفری
- 10 دقیقه
- 0
- سمانه جعفری
- مطالعه در 10 دقیقه
- بدون دیدگاه
- سمانه جعفری
- 10 دقیقه
- 0
- سمانه جعفری
- مطالعه در 7 دقیقه
- بدون دیدگاه
- سمانه جعفری
- 7 دقیقه
- 0
