آموزش راستچین کردن قالب وردپرس

19

آموزش راستچین کردن قالب وردپرس

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

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

راستچین کردن قالب وردپرس

راستچین کردن قالب وردپرس به این مفهوم است که کاری کنیم که قالب مورد نظرمان، در سایت هایی که از زبانهای راست به چپ مانند فارسی استفاده میکنند، به درستی به نمایش در بیاید. راستچین کردن به مفهوم مجهز کردن قالب به استایلهای RTL است. عبارت RTL مخفف Right To Left بوده و به مفهوم “راست به چپ” است. تقریبا میتوان گفت که این کار همیشه از اصول یکسانی پیروی میکند و جدا از چند نکته کوچک، همواره میتوانید با پیروی از چند اصل، به سادگی قالب دلخواهتان را راستچین کنید. به طور کلی هدف ما این است که همه عناصر قالب، در زبان فارسی به صورت کاملا قرینه با زبان انگلیسی به نمایش گذاشته شوند. برای این کار به ابزارهای اندکی نیاز دارید که در ادامه به شرح آنها میپردازیم.

مهارت ها و ابزارهای مورد نیاز برای RTL کردن قالب وردپرس

برای راستچین کردن قالب وردپرس نیاز به آشنایی مختصری با CSS خواهید داشت. علاوه بر این به یک ویرایشگر متنی مانند notepad++ نیز جهت اضافه کردن و ویرایش استایلهای css احتیاج دارید. هرچند این کار را با هر ویرایشگر متنی میتوان انجام داد اما انتخاب یک ویرایشگر مخصوص کدنویسی میتواند در ساده تر شدن کار به شما کمک کند. آخرین ابزار مورد نیاز شما، یک مرورگر است که در آن قابلیت inspect کردن عناصر به شکلی مناسب در اختیار شما قرار بگیرد.

هرچند در حال حاضر از کروم و فایر فاکس گرفته تا اپرا و edge همگی از امکان inspect کردن عناصر صفحه پشتیبانی میکنند اما در این میان استفاده از مرورگهای گوگل کروم و فایرفاکس را به شما توصیه میکنیم. (در این زمینه همه چیز به این بستگی دارد که شما با کدام یک از این مرورگرها راحت تر هستید)

ایجاد فایل RTL.CSS

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

پس برای شروع لازم است که فایلی با نام rtl.css در فولدر مربوط به قالب خود ایجاد نمایید. سپس فایل مربوطه را با اطلاعاتی از قبیل نام قالب، نام نویسنده، لینک نویسنده و توضیحات لازم پر کنید. مثلا :

البته در واقع پر کردن اطلاعات فوق ضروری نیست چرا که وردپرس اطلاعات مربوط به نام قالب و … را از فایل style.css خواهد خواند ولی به هر حال جهت خوانایی بهتر و خصوصا برای مشخص بودن ورژنی که استایلها را برای آن نوشته ایم، بهتر است این اطلاعات را در فایل rtl.css درج کنید. استایلهای مورد نیاز جهت نمایش راست به چپ قالب را میتوانید در ادامه به همین فایل اضافه کنید.

اصول راستچین کردن قالب

برای راستچین کردن یک قالب، میبایست ابتدا آن را روی وردپرس، نصب و فعال کنید. سپس صفحه سایت را باز کرده و عناصری که موقعیت و نوع نمایش آنها اشتباه است را با ابزار توسعه مرورگر مورد بررسی قرار دهید. یعنی مثلا اگر قرار است موقعیت لوگوی قالب را تصحیح کنید، روی آن راست کلیک کرده و گزینه Inspect Element را انتخاب میکنید تا استایلهای مربوط به این عنصر در اختیار شما قرار بگیرند. پس از یافتن استایلهای مربوطه، آنها را بر اساس اصولی که در ادامه ذکر میشود، ویرایش کرده و یک به یک در فایل rtl.css قرار میدهید.

همانطور که پیشتر از ذکر کردیم، راستچین کردن قالب، جدا از چند نکته کوچک، تقریبا همیشه از اصول یکسانی پیروی میکند. (برای برخی از این اصول، استثناهایی وجود دارند که با کمی دقت و کسب تجربه بیشتر در این زمینه، به سادگی آنها را پیدا خواهید کرد) این اصول عبارتند از :

اضافه کردن direction:rtl به عناصر قالب

عموما در راستچین کردن ، به تمام تگ بدنه قالب ویژگی direction:rtl را می افزاییم.مثلا :

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

تغییر جهت چینش نوشته ها

مرحله بعدی تغییر جهت چینش نوشته ها خواهد بود. یعنی اگر در نسخه انگلیسی نوشته ای در سمت چپ سایت نشان داده میشود، در نسخه فارسی میبایست در سمت راست نشان داده شود و بالعکس. مثلا فرض کنیم عنصری دارای ویژگی زیر باشد :

برای تغییر جهت نوشته مورد نظر و نمایش آن در سمت راست، عبارت فوق را به شکل زیر تغییر میدهیم :

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

تغییر حالت شناوری عناصر

تغییر حالت شناوری یا float عناصر بیشتر در مواردی مثل سایدبار ها، ناحیه محتوا و همچنین جهت نمایش آیتم های منو و موارد مشابه کاربرد دارد. در این حالت برای تغییر موقعیت یک عنصر از سمت چپ به راست، در صورتی که مقدار زیر را مشاهده کردید :

آن را به حالت زیر تغییر دهید :

مجددا در این مورد نیز بالعکس این نکته هم صادق است. همچنین باید توجه داشته باشید که عناصری که دارای float:none هستند، نیاز به اعمال چنین تغییری نخواهند داشت.

تغییر جهت کادر ها

مورد دیگری که شاید نتوان آن را جزو اصول کلی و اجباری راستچین کردن پوسته وردپرس قرار داد ولی رعایت و توجه به آن خالی از لطف نیست، تغییر جهت کادر هاست. (اگر ocd داشته باشید، همین مسئله را میتوان بر روی سایه ها هم پیاده سازی کرد که البته شاید کمی زیاده روی به نظر برسد!) تغییر جهت کادر ها شاید به خودی خود فاقد اهمیت ویژه باشد اما اگر به عنصری در حالت شناوری ماوس روی آن، کادر اضافه شود، اصلاح جهت کادر، اهمیت بیشتری پیدا میکند. یک نمونه از تغییر جهت کادر را در زیر مشاهده میکنید. پیش از تغییر :

پس از تغییر :

البته استایل فوق به صورت نمونه درج شده و ممکن است شیوه تعریف کادر در قالب شما با حالت فوق متفاوت باشد.

تغییر موقعیت های ثابت

اگر در جایی از قالب موقعیت های ثابت مانند زیر مشاهده میکنید :

باید آنها را به حالت برعکس خود تبدیل کنید. مثلا :

این حالت را خصوصا در جهت باز شدن منو ها، یا دکمه بازگشت به بالا و … خیلی مشاهده خواهید کرد.

تغییر padding ها و margin ها

فاصله های داخلی و بیرونی عناصر نیز با تغییر جهت قالب، نیازمند اعمال تغییراتی خواهند بود. در اینجا نیز فاصله های اعمال شده روی سمت چپ عناصر باید با فاصله های اعمال شده روی سمت راست عناصر جایگزین شوند. (و بالعکس) این حالت را خصوصا در دیدگاه های تو در تو در قالب های وردپرس به وفور خواهید دید. مثلا :

تبدیل میشود به :

یا در حالتی دیگر اگر استایلهای زیر را در اختیار داشته باشیم :

آن ها را به حالت زیر تبدیل میکنیم :

تغییر جهت آیکن ها

در برخی موارد در قسمت هایی مانند لیست ها یا منو ها، از آیکن های جهتی استفاده میشود که پس از RTL کردن قالب، با توجه به تغییر جهت نوشته ها، تناسبی با محل قرار گرفته در آن ندارند. در این حالت در صورتی که آیکن استفاده شده به حالت تصویری باشد، میبایست در فایل rtl.css یک تصویر جایگزین را با جهت مناسب جایگزین آن کنید. اگر هم آیکن با استفاه از آیکن فونت ها مثل font Awesome در قالب قرار گرفته است، میبایست آیکن جایگزین مناسبی را از سری آیکن های این فونت برای آن در فایل rtl.css در نظر بگیرید. مثلا حالت زیر را در نظر بگیرید :

در حالت راستچین، کد فوق به شکل زیر تغییر میکند :

چند نکته مهم در راستچین کردن قالب

رعایت نکات زیر در راستچین کردن قالب میتواند به حصول نتیجه ای بهتر و کامل تر در rtl کردن قالب های وردپرس منجر شود :

  • در راستچین کردن، media query ها و استایلهای مربوط به حالت واکنش گرایی قالب را فراموش نکنید.
  • در محل های مناسب، اندازه فونت ها را با توجه به فونتی که در زبان فارسی برای قالب استفاده میکنید، تغییر دهید.
  • در برخی مواقع، اعمال ویژگی direction:rtl منجر به بروز اختلال در کارکرد برخی از اسلایدر ها و carousel ها میشود. در چنین شرایطی برای این نوع عناصر در فایل rtl.css جهت ltr را تعریف کنید و سپس اگر نوشته یا محتوایی در آنها موجود است که نیازمند استایلهای راست به چپ است، استایل مربوطه را مستقیما روی عنصری اعمال کنید که به آن احتیاج دارد و نه روی کل اسلایدر یا carousel.
  • برخی از استایلها توسط فایل های جاوااسکریپت یا برخی توابع بر روی عناصر اعمال میشوند. در چنین شرایطی اگر اضافه کردن استایلهای راست به چپ به فایل rtl.css روی عناصر مربوطه، بی تاثیر بود، بهتر است رفتار تابع یا فایل استایل مورد نظر را مطابق نیازهای محیط راست به چپ خود تغییر دهید. (مثلا اگر امکان صدا کردن یک تابع با پارامتر rtl وجود دارد، میتوانید شرطی را به قالب اضافه کنید که انجام این کار را به عهده بگیرد.)
  • از کپی کردن همه محتوای فایل استایل اصلی قالب و قرار دادن آن در فایل rtl.css خودداری کنید. تنها بخش هایی از استایل های قالب را به فایل rtl.css اضافه کنید که به آنها نیاز دارید.
  • حتی الامکان از درج استایلها های مربوط به رنگ و مواردی که به راستچین کردن قالب مرتبط نیستند در فایل rtl.css خودداری کنید.
  • فراموش نکنید که بلاک های code و pre بهتر است همواره نمایش ltr و چپ به راست داشته باشند و نوشته را در سمت چپ تراز کنند.

و یک نکته کوچک که نیازمند کمی توضیح است. فرض کنید که کد زیر را در فایل استایل اصلی قالب داشته باشیم :

حالا میخواهیم این فاصله را در فایل rtl.css برعکس کنیم. طبعا طبق توضیحات ارائه شده لازم است که کد زیر را در فایل rtl.css جایگزین کد بالا کنیم :

الان انتظار چه نتیجه ای را دارید؟ انتظار دارید که عنصر مورد نظر بجای چپ، از راست فاصله داشته باشد؟ خوب طبعا این اتفاق نمی افتد. چرا که مرورگر ابتدا استایل اول را میبیند و 10 پیکسل فاصله از سمت چپ روی عنصر مورد نظر اعمال میکند و سپس استایل درج شده در فایل rtl.css را میبیند و 10 پیکسل هم فاصله از سمت راست روی عنصر مورد نظر درج میکند. نتیجه میشود اینکه عنصر مورد نظر از دو طرف فاصله پیدا میکند. این در حالی است که ما فقط میخواستیم فاصله راست را جایگزین فاصله چپ کنیم. در چنین حالتی کافی است استایل را به صورت زیر در فایل rtl.css اعمال کنیم :

حالا چون margin-left تعریف شده در فایل rtl.css به استایل های اصلی قالب اولویت دارد، دیگر فاصله اضافه ای در سمت چپ عنصر مورد نظر مشاهده نخواهید کرد. این مسئله تقریبا در تمامی حالات، چه برای فاصله ها و چه برای کادر ها، صادق خواهد بود.

جمع بندی

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

آموزش فارسی سازی قالب وردپرس

آموزش اضافه کردن فونت دلخواه به قالب

آموزش طراحی قالب وردپرس

آموزش استفاده از پوسته فرزند در وردپرس

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

دسترسی آسان به این مطلب لینک کوتاه :
شاید از اینها هم خوشتان بیاید!
19 دیدگاه
  1. مهربان می گوید

    سلام

    خود فایل rtl.css رو چطوری باید معرفی کنیم به قالب که همچنین فایلی هم هست و باید ازش استفاده کنه؟

    1. MrCode می گوید

      سلام
      همونطور که در قسمت "ایجاد فایل RTL.CSS" توضیح دادیم : "این فایل پس از ایجاد شدن، در صورتی که سایت در محیط فارسی زبان (یا هر زبان دیگری که نیازمند استایلهای راست به چپ باشد) بارگذاری شود، توسط وردپرس در قالب فراخوانی شده و استایلهای آن بر روی قالب اعمال میشوند."
      بنابراین شما لازم نیست کاری در مورد فراخوانی یا معرفی این فایل بکنید. این فایل جزو فایل های استانداردی هست که در صورت موجود بودن، توسط وردپرس فراخوانی شده و مورد استفاده قرار میگیره.

  2. negar می گوید

    سلام.تو منوی سایت من دراپ دان ها فارسی هستند اما از چپ به راست نمایش داده میشه.چیکار کنم ک راست ب چپ بشه؟direction & float & text-align رو تو قسمت ویرایشگر درست کردم اما بازم نوشته ها گوشه سمت چپ هستن.میشه راهنمایی کنید لطفا؟ممنون

    1. MrCode می گوید

      سلام
      بدون دیدن نظر خاصی نمیتونم بدم. صد در صد یک چیزی رو از قلم انداختید.

  3. امید می گوید

    من تخصصی در این زمینه ندارم با همین آموزش ساده شما تونستم یه قالب برای خودم راستچین و فارسی کنم
    واقعا ممنون از مستر کد مطالبتون عالی هست

    1. MrCode می گوید

      خوشحالیم که این آموزش برای شما مفید بوده 🙂

  4. مهدی می گوید

    سلام
    مقاله خیلی عالی بود ولی میشه یه کم بیشتر در مورد بخش کادرها توضیح بدید بعد اینکه ocd چی هست؟
    خیلی خوبم میشد برای هر بخش یه نمونه تصویر کوچیک میذاشتید

    1. MrCode می گوید

      ممنون از لطفتون
      برای همه بخش ها مثال زدیم دیگه 🙂
      حالا انشالله احتمالا آموزش ویدئویی به این بخش اضافه کنیم.
      ocd یعنی obsessive compulsive disorder یا به زبان ساده همون وسواس خودمون ولی یکمی وسیع تر ? ?

  5. محسن می گوید

    سلام.
    بعد از اینکه قالب رو راستچین میکنم حاشیه سمت راست قالب صفر میشه و از سمت چپم یه حاشیه زیاد ایجاد میشه!!! چیکار باید بکنم برای رفع این مشکل؟

    1. MrCode می گوید

      سلام
      خوب بر اساس نیازتون margin ها و padding هارو هم در فایل استایلتون تعریف کنید.

  6. سجاد می گوید

    سلام
    عالی بود.

  7. محمد می گوید

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

    1. MrCode می گوید

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

  8. علیرضا می گوید

    سلام خدمت شما،
    وقتی زیرپوسته درست می کنیم، و فایل rtl.css و یا فایل های دیگه مثلheader.phpداخلش قرار می دیم ، آیا باید در فایل function.php زیر پوسته، کدی اضافه بشه یا نیازی نیست؟
    با سپاس

  9. ReZa می گوید

    سلام
    فقط میتونم بگم دمتون گرم، عالی هستید.

  10. علی می گوید

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

  11. ایمان قربانی می گوید

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

  12. رضا می گوید

    سلام سایت من فارسی هست و مشکلی از این بابت ندارم فقط از یک دیتابیس در پست ها استفاده میکنم که اون دیتابیس میاد و بعضی از کلمات منو به صورت تولتیب نشون میده و تنها مشکلم اینکه اگه زبون سایت انگلیسی باشه شکل تولتیب ها درست هست و کادرش هم درسته اما وقتی من زبان سایت رو فارسی میکنم تولتیبش هم راست چین میشه و کلماتش و کادرش درست نشون نمیده الان من باید چه کاری و چه کدی رو وارد کنم ؟
    سایت هم برای نمونه دارم روی این سایت کار میکنم :

  13. علیرضا می گوید

    سلام تو قالب وود مارت تو صفحه تک محصول سه تا زبانه مشخصات و مشخصات تکمیلی و نظرات هست. این سه زمانه وسط چین هست من میخوام که راست چین بشه، برای همه محصولات راست چین بشه

ارسال پاسخ

آدرس ایمیل شما منتشر نخواهد شد.