دوره مجازی قالب وردپرس (جلسه 61) :پیاده سازی ترجمه قالب + پیاده سازی child theme



visibility  
mode_comment   ۳۵

به نام خدا و سلام. در جلسه 61 ام از دوره مجازی آموزش طراحی قالب حرفه ای وردپرس در خدمت شما هستیم. در این جلسه درباره توابع ترجمه قالب های وردپرس و هم چنین نحوه پیاده سازی آن و استفاده ار نرم افزار PoEdit بحث خواهیم کرد و هم چنین قابلیت child theme که مزیت بزرگی برای قالب های وردپرس به شما می رود را پیاده سازی خواهیم کرد. در ابتدای کار تابع load_theme_textdomain را معرفی می کنیم که با استفاده از آن یک شناسه منحصر به فرد برای ترجمه قالب مشخص خواهیم کرد و  در ادامه هم توابع ()__  و ()e_ را معرفی خواهیم کرد که با استفاده از آن می توانیم و متن های مختلف قالب را قابل ترجمه کنیم. با ما همراه باشید.

در این جلسه خواهیم دید :

  • معرفی قابلیت و نحوه ترجمه متن در وردپرس
  • معرفی تابع load_theme_textdomain
  • استفاده از توابع ()__ و ()e_ در قالب
  • استفاده از نرم افزار PoEdit برای ایجاد فایل های ترجمه
  • معرفی قابلیت child-theme
  • پیاده سازی ساختار مورد نیاز برای child-theme
  • فعال سازی child-theme
info توجه

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

ثبت نام در آموزش طراحی قالب وردپرس حرفه ای

comment دیدگاه کاربران
mtcoms replyپاسخ

سلام جناب علی محمدی خواهشا آخر کاری ارزش کار خودتون رو نیارید پایین آخه خداییش مبحث child theme رو شما تدریس کردین ؟؟!! آدم خودش سرچ بزنه اطلاعات بیشتری دستگیرش میشه تا اون 5 دقیقه که شما توضیح دادین !!!!!!

کیوان علی محمدی

سلام دوست عزیز شما انتظارتون از child-theme چی هست؟ بفرمایید تا ما حتما بررسی کنیم.

مصطفی فدائی replyپاسخ

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

ولی بعد این که نقش ایجاد میشه برای مثال ویرایش پست ها رو که trueدادم نشون نمیده برای اون نقش و یا وقتی از remove_role( ‘subscriber’ ); استفاده میکنم برای حذف نقش ها با پاک کردنش نقش برنمیگرده
لطفا راهنمایی کنید !! 🙁

کیوان علی محمدی

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

مصطفی فدائی

تشکر

مصطفی فدائی replyپاسخ

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

کیوان علی محمدی

سلام بله همه جوره میشه با نقش های کاربری وردپرس کار کرد.

reza_yki replyپاسخ

سلام
من یک مشکل داشتم اگه میشه راهنمایی کنید
مشکلم اینه که من یه ابزارک نوشتم که مطالب چند دسته رو به صورت تب بندی شده نشون میده تا این جا درست نشون میده ولی مشکل از جایی شروع میشه که اگه از این ابزارک تو یک صفحه دوبار استفاده بشه با کلیک رو هر تب ابزارک دوم هم تغییر میکنه

مشکل رو میدونم چی هست یعنی من به صورت استاتیک گفتم تو این صفحه رو هر لینکی که داخل تک box-select بود کلیک شد محتوا رو نشون بده ولی نمی تونم این رو درست کنم و داینامیک کنم لطفا راهنمایی کنید
ممنون

کیوان علی محمدی

برای این مورد بهتره از سلکتور های parent استفاده کنید تا دقیقا مشخص بشه کدوم عناصر باید کلاسی بهشون اضافه یا از اونها حذف بشه.

reza_yki

ممنون ولی من در جی کوئری مبتدی هستم و نتونستم درست انجامش بدم میشه بر روی کد بالا بگید چی کار کنم؟
من این کار رو کردم ولی درست نشد:

reza_yki

استاد با راهنمایی شما مشکل حل شد حالا میشه راهنمایی کنید که چطور ای جکسی کنم طوری که وقتی محتوا لود بشه که روی تب مربوطه کلیک شد سواد من تا این جا رسید که با کلیک رو هر تب یه درخاص ای جکسی ارسال شه:

کیوان علی محمدی

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

حمید رضا مصطفی زاده replyپاسخ

سلام و عرض ادب
خواستم بدونم برای چند زبانه کردن سایتی (در حال حاضر فقط فارسی است) از این افزونه WPML کمک بگیریم حله یا نه؟
با هر نوع غالبی میخونه؟
با تشکر

کیوان علی محمدی

سلام بله افزونه خوبیه.

حمید رضا مصطفی زاده

با سلام
دنبال این هستم که سایت رو چند زبانه کنم هر افزونه ای که میگیرم wpml از نت میگیرم نصب نمیشه
نمیدونم نسخه های wpml ها قدیمی هست یا نسخه وردپرس من ، با نسخه وردپرس من سازگاری نداره
یه سری پلاگین های پولی هست نمیدونم اونا ها چطوریه سازگار میشه یا نه
ممنون میشم راهنمایی کنید

کیوان علی محمدی

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

حمید رضا مصطفی زاده replyپاسخ

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

لقمان آوند

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

pedram2020 replyپاسخ

سلام. اگر از یک تگ div که توی قالب اصلی هست رو بخواهیم با استفاده از child theme پاکش کنیم، باید چکار کنیم؟

کیوان علی محمدی

سلام همون فایل رو در داخل child-theme قرار بدین و تغییرات رو اعمال کنید و تست کنید.

Amin Shahraki replyپاسخ

سلام
چطور میتونم فایل های ترجمه رو به Child Theme بشناسونم؟
طبق راهنمایی هایی که توی سایت های انگلیسی بود اقدام کردم اما جواب نداد.
(لازمه بگم که برای معرفی فایل استایل قالب اصلی به قالب فرزند از دستور ایمپورت استفاده نکردم بلکه از تابع مربوطه توی functions استفاده کردم)

من این کارها رو انجام دادم :
1. ساخت فایل ها po. و mo. و قرار دادن اونها در پوشه ی languages در دایرکتوری child theme
2. قرار دادن کدهای گفته شده در سایت های مختلف داخل functions.php

(ضمنا من فایل rtl.css استفاده نکردم داخل child theme بلکه خود style.css رو ویرایش کردم)

کیوان علی محمدی

سلام. این کد رو داخل فایل functions.php قالب child قرار بدید و تست کنید.


function my_child_theme_locale() {
load_child_theme_textdomain( 'total', get_stylesheet_directory() . '/languages' );
}
add_action( 'after_setup_theme', 'my_child_theme_locale' );

Amin Shahraki

سلام. متأسفانه جواب نداد. به Text Domain مربوط نمیشه؟
توی این تکه کد، تغییری نباید ایجاد کنم؟ مثلاً جاییش اسم قالب اصلی یا فرزند رو جایگرین کنم؟
واقعاً موندم چکار کنم؟ اینجوری که نمیشه از چایلد تم استفاده کرد؛ قالب اصلی هم که تا آپدیت بشه همه تغییرات میپره…

کیوان علی محمدی

چرا دوست عزیز باید text domain رو تغییر بدین.

Amin Shahraki replyپاسخ

سلام.
سرعت پاسخ گویی خیلی پایین اومده!
چرا؟!

لقمان آوند

پایین نیست دوست عزیز.
شما دیشب سوال کردید و امروز هم که تعطیل بوده. ایشالله پاسخ می گیرید فردا.

Amin Shahraki

ممنون از پیگیریتون.

farhad6169 replyپاسخ

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

کیوان علی محمدی

سلام. با استفاده از نرم افزار poedit می تونید اینکارو انجام بدین. از منوی catalog گزینه update from pot file رو انتخاب کنید و در این حال باید فایل po ترجمه شده توسط شما باید در نرم افزار باز باشه. در این حالت متن های جدید برای ترجمه به فایل شما اضافه میشه و می تونید تر جمه اشون کنید.

farhad6169

خیلی عالی بود پاسختون.
از شما و سون لرن سپاسگذارم.
موفق باشید

کیوان علی محمدی

موفق باشید.

farhad6169 replyپاسخ

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

کیوان علی محمدی

می تونید این موارد رو یک آپشن ذخیره کنید و بر اساس زبان مقدارش رو برگردونید. کلا یک آپشن هم بیشتر نیاز نداره.

farhad6169

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

کیوان علی محمدی

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

ارسال نظرات

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