با انتشار وردپرس ۶.۷، کاربران با مشکلاتی در زمینه ترجمه و استایلدهی در این نسخه مواجه شدهاند.
با بروزرسانی وردپرس به نسخه 6.7، تغییراتی در نحوه بارگذاری فایلهای ترجمه ایجاد می شود که میتواند بر عملکرد افزونهها و قالبها تأثیر بگذارد.
بر اساس گزارشهای منتشرشده در انجمنهای پشتیبانی وردپرس، برخی کاربران پس از بهروزرسانی به نسخه ۶.۷، با از دست رفتن ترجمهها و استایلهای سفارشی در قالبها و افزونههای خود مواجه شدهاند. این مشکل بهویژه در افزونههایی مانند ووکامرس مشاهده شده است.
توسعهدهندگان ووکامرس در واکنش به این تغییرات، در نسخه ۹.۴ این افزونه، اصلاحاتی برای هماهنگی با وردپرس ۶.۷ اعمال کردهاند. با این حال، ممکن است کاربران همچنان با هشدارهایی مانند «بارگذاری ترجمه برای دامنه <PLUGIN> خیلی زود انجام شده است» مواجه شوند. این هشدارها نشاندهنده نیاز به بارگذاری ترجمهها در زمان مناسب، مانند اکشن ‘init’ یا بعد از آن، هستند.
برای کاهش این مشکلات، توصیه میشود تنظیمات ‘WP_DEBUG_DISPLAY’ را به ‘false’ تغییر دهید تا از نمایش هشدارها جلوگیری شود.
add_filter( ‘doing_it_wrong_trigger_error’, ‘__return_false’ );
همچنین، توسعهدهندگان افزونهها و قالبها باید اطمینان حاصل کنند که بارگذاری فایلهای ترجمه در زمان مناسب انجام میشود تا با تغییرات نسخه ۶.۷ وردپرس سازگار باشد.
در مجموع توصیه میشود پیش از بهروزرسانی به نسخههای جدید وردپرس، افزونهها و قالبهای خود را از نظر سازگاری بررسی کرده و در صورت نیاز، بهروزرسانیهای لازم را اعمال کنند تا از بروز مشکلات احتمالی جلوگیری شود.
الف- بررسی و رفع مشکل فونت ها و استایل در وردپرس 6.7
راهکارهای رفع مشکل
برای رفع مشکلات ترجمه در وردپرس ۶.۷، توصیه میشود اقدامات زیر را انجام دهید:
- استفاده از اکشن مناسب برای بارگذاری ترجمهها
توسعهدهندگان افزونهها و قالبها باید اطمینان حاصل کنند که بارگذاری ترجمهها در اکشن مناسبی مانندinitیا پس از آن انجام میشود تا با تغییرات وردپرس ۶.۷ سازگاری داشته باشد. - غیرفعال کردن نمایش هشدارها در محیط تولید
برای جلوگیری از نمایش هشدارهای مربوط به ترجمه، میتوانید تنظیماتWP_DEBUG_DISPLAYرا بهfalseتغییر دهید. این کار به شما کمک میکند تا این هشدارها در صفحه اصلی سایت نمایش داده نشوند، اما به نعنی رفع مشکل نهایی نیست. - بررسی و بهروزرسانی تنظیمات ترجمه در پلاگینها
در صورتی که از پلاگینهایی مانند Loco Translate یا WPML استفاده میکنید، از نسخههای بهروز آنها بهره ببرید و تنظیمات ترجمهها را مجدداً بررسی کنید. این پلاگینها ممکن است در برخی موارد تنظیمات پیشفرضی داشته باشند که با تغییرات وردپرس ۶.۷ سازگار نیستند. - ررسی فایلهای زبان
اطمینان حاصل کنید که فایلهای.moو.poدر پوشه/languagesموجود هستند. اگر این فایلها وجود نداشته باشند، ترجمهها نمایش داده نمیشوند. - بهروزرسانی پلاگینها و قالبها
مطمئن شوید که تمام پلاگینها و قالبها به آخرین نسخهها بهروز شدهاند تا با وردپرس ۶.۷ سازگار باشند. - فایلهای زبان خراب را حذف کنید.
به پیشخوان > بروزرسانیها بروید و ترجمهها را دوباره نصب کنید. - بررسی تنظیمات زبان در وردپرس
مطمئن شوید که تنظیمات زبان در پیشخوان > تنظیمات > عمومی به درستی پیکربندی شده است.
ب- حل مشکل ترجمه در قالب ها و افزونه ها
اگر قبلا از تابع load_theme_textdomain استفاده می کردید یا اینکه تابع load_textdomain را در هوک init استفاده نمی کردید، کد خود را به شکل زیر تغییر دهید:
اصلاح کد برای قالب ها:
add_action(‘init’ , function(){
if ( version_compare( $GLOBALS[‘wp_version’], ‘6.7’, ‘<‘ ) ) {
load_theme_textdomain( ‘YOUR_TEXT_DOMAIN’, get_template_directory() . ‘/languages’ );
} else {
load_textdomain( ‘YOUR_TEXT_DOMAIN’, get_template_directory() . ‘/languages/’ . determine_locale() . ‘.mo’ );
}
});
اصلاح کدها برای افزونه ها:
add_action(‘init’ , function(){
if ( version_compare( $GLOBALS[‘wp_version’], ‘6.7’, ‘<‘ ) ) {
load_plugin_textdomain( ‘YOUR_TEXT_DOMAIN’, dirname(plugin_basename(__FILE__)).’/languages’ );
} else {
load_textdomain( ‘YOUR_TEXT_DOMAIN’, plugin_dir_path(__FILE__) . ‘languages/your_text_domain-‘ . determine_locale() . ‘.mo’ );
}
});
توجه داشته باشید که به جای YOUR_TEXT_DOMAIN باید TEXT_DOMAIN قالب یا افزونه ی خود را وارد کرده و حتما به آدرس دهی دقیق فایل mo توجه کنید ( مسیر درست فایل های ترجمه را با توجه به پروژه خود تعریف کنید ).
نتیجهگیری
اگر افزونه یا قالب شما با وردپرس نسخه ۶.۷ یا بالاتر به درستی کار نمیکند، احتمالاً مشکل از روشهای قدیمی بارگذاری فایلهای ترجمه است. با رعایت نکات زیر، میتوانید این مشکل را برطرف کنید:
1. اطمینان حاصل کنید که از هوک `init` یا بعد از آن برای بارگذاری ترجمهها استفاده میکنید.
2. از تغییر فیلترهایی مثل `theme_locale` یا `plugin_locale` خودداری کنید، زیرا دیگر وجود ندارند.
3. برای تست و دیباگ، از ابزارهایی مثل Query Monitor استفاده کنید.
با توجه به اینکه مستندات رسمی وردپرس هنوز این تغییرات را به طور کامل پوشش نداده است، بهتر است کدهای خود را با دقت بازبینی کنید و از منابع معتبر مانند مخزن گیتهاب وردپرس کمک بگیرید. به این ترتیب، میتوانید از ناسازگاریهای احتمالی جلوگیری کنید و افزونه یا قالب خود را برای نسخههای آینده وردپرس آماده نگه دارید.

در نهایت پروسه رفع این مشکل را حتما از افراد متخصص و انجمن های معتبر وردپرس دنبال کنید. به عنوان مثال رنک مث در نسخه 3.0.75 مشکلات مربوط به نسخه 6.7 را بصورت فورس رفع کرده است.
