آموزش فارسی سازی اعداد در وردپرس

آخرین بروزرسانی : ۱۰ آذر ۱۴۰۴
افزونه المنتور پرو

کاملاً اورجینال با قابلیت آپدیت خودکار در پنل پیشخوان وردپرس

در این نوشته شما می خوانید

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

آموزش فارسی سازی اعداد در وردپرس

روش های فارسی سازی اعداد در وردپرس

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

نصب فونت با پشتیبانی از اعداد فارسی

نصب فونت با پشتیبانی از اعداد فارسی

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

کدنویسی php برای تبدیل اعداد به فارسی

با قرار دادن کد زیر در فایل functions.php قالب وردپرسی سایت تمامی اعداد در تمامی سایت از انگلیسی به فارسی تبدیل می شوند. بنابراین اگر سایت دو زبانه دارید این روش مناسب شما نیست. نکته بعدی اینکه اعداد فقط به صورت فارسی نمایش داده می شوند اما در دیتابیس شما اعداد به صورت لاتین باقی می مانند.
<?php
function convert_to_persian_numbers( $number ) {
$english = array('0','1','2','3','4','5','6','7','8','9');
$persian = array('۰','۱','۲','۳','۴','۵','۶','۷','۸','۹');
return str_replace($english, $persian, $number);
}
function persianize_numbers_outside_html( $content ) {
return preg_replace_callback(
'/\d+(?![^<]*>)/',
function( $matches ) {
return convert_to_persian_numbers( $matches[0] );
},
$content
);
}
add_filter('the_content', 'persianize_numbers_outside_html');
add_filter('the_excerpt', 'persianize_numbers_outside_html');
add_filter('widget_text', 'persianize_numbers_outside_html');
add_filter('widget_text_content', 'persianize_numbers_outside_html');
?>

نکته: دسترسی به فایل functions.php قالب از دو راه پیشخوان وردپرس و مدیریت فایل های هاست امکانپذیر است.

functions.php

جهت دسترسی از طریق پیشخوان وردپرس به زیر منوی نمایش و ویرایشگر پرونده پوسته و برای دسترسی به این فایل از طریق هاست وارد file manager و مسیر: پوشه public_html > پوشه wp-content> پوشه themes> پوشه قالب سایت > فایل functions.php شوید.

کدنویسی جاوااسکریپت برای تبدیل اعداد لاتین به فارسی

کد زیر حتما باید در هدر سایت (فایل header.php قالب) یا درواقع بین تگ </head><head> قرار دهید:

<script>
$(document).ready(function(){ persian={0:’۰’,1:’۱’,2:’۲’,3:’۳’,4:’۴’,5:’۵’,6:’۶’,7:’۷’,8:’۸’,9:’۹’}; function traverse(el){ if(el.nodeType==3){ var list=el.data.match(/[0-9]/g); if(list!=null && list.length!=0){ for(var i=0;i<list.length;i++) el.data=el.data.replace(list[i],persian[list[i]]); } } for(var i=0;i<el.childNodes.length;i++){ traverse(el.childNodes[i]); } } traverse(document.body); });
</script>

نکته: جهت اضافه کردن کدهای جاوااسکریپت به هدر سایت اگر المنتور را نصب دارید از مسیر پیشخوان> المتنور> کد سفارشی المنتور یا افزونه Code Snippets استفاده کنید.

فارسی سازی اعداد در وردپرس با کمک افزونه

افزونه ها در وردپرس همیشه کار ما را آسان می کنند؛ ساده ترین راه حل هستند اما کدهای اضافی زیادی به سایت ما اضافه می کنند. برای تبدیل اعداد لاتین به فارسی در وردپرس افزونه  زیر پیشنهاد می شوند:

افزونه پارسی دیت

افزونه پارسی دیت
parsi date علاوه بر اینکه تقویم خورشیدی به سایت اضافه می کند؛ تنظیماتی هم جهت فارسی سازی اعداد ارائه می دهد.
این افزونه را می توانید از مخزن وردپرس دانلود کنید.

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

افزونه های دیگری مثل wp-jalali (وردپرس فارسی)  و WP-Persian نیز قابلیت تبدیل اعداد به فارسی و فارسی سازی را دارند اما با توجه به ارائه نشدن آپدیت جدید از سوی سازندگان افزونه در زمان نگارش این آموزش پیشنهاد ما استفاده از افزونه پارسی دیت است.

جمع بندی

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

5 پاسخ

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

    1. سلام وقت بخیر
      بله در وردپرس می‌توان این قابلیت را پیاده‌سازی کرد، اما به‌صورت پیش‌فرض چنین گزینه‌ای وجود ندارد. برای این کار می‌توانید:
      انتخاب فونت مناسب (مثل IRANSans یا Vazir) که هم اعداد فارسی و هم انگلیسی را پشتیبانی کند
      استفاده از CSS برای تعیین فرمت اعداد (با ویژگی‌هایی مثل font-feature-settings)
      یا افزونه‌های تغییر فونت و شخصی‌سازی تایپوگرافی که اجازه کنترل نوع نمایش اعداد را بدهند

  2. تغییرات کد PHP شما، به دلیل یک خطا در خط 215 از فایل wp-content/themes/astra/functions.php بازگردانده شد. لطفا اصلاح نمایید و دوباره سعی کنید که ذخیره نمایید.

    syntax error, unexpected token “<", expecting end of file

    ارور بالا رو میده وقتی کد رو قرار میدم

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *