حل مشکل نمایش حروف فارسی در وردپرس بصورت علامت سوال

1 / 5. تعداد رای: 1

حل مشکل نمایش حروف فارسی در وردپرس بصورت علامت سوال

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

در برخی موارد همین عبارت سلام ممکن است به شکل سلا٠نمایش داده شود! باز هم مشکلی نیست.

دلیل مشکل نمایش حروف فارسی در وردپرس

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

مشکل نمایش حروف فارسی در وردپرس زمانی بوجود می‌آید که این کالیشن‌ها با زبان شما همخوانی نداشته باشند. برای حروف فارسی باید از کالیشن UTF-8 General CI استفاده کنیم. اما بعضی از دیتابیس‌ها به‌صورت پیش‌فرض از کالیشن Latin استفاده می‌کنند که باعث بهم‌ریختگی در حروف فارسی خواهد شد. حالا ما باید دست‌به‌کار شویم و این مشکل را برطرف کنیم.

حل مشکل نمایش حروف فارسی در وردپرس

برای حل این مشکل کافیست کالیشن دیتابیس و کالیشن تمام جداول موجود در دیتابیس وردپرس را به UTF-8 تغییر دهیم. پس وارد کنترل پنل هاست خودمان می‌شویم.

بعد از وارد شدن به سی‌پنل یا دایرکت ادمین، کافیست روی PHPMyAdmin کلیک کنید.

phpmyadmin در هاست شما
phpmyadmin در هاست شما

این سیستم برای ورود به مدیریت دیتابیس استفاده می‌شود. در صورت نیاز باید نام کاربری و رمز عبور دیتابیس وردپرس خودمان را از فایل wp-config.php دریافت کرده و در صفحه ورود پی‌اچ‌پی مای ادمین وارد کنیم.

ورود به phpmyadmin
ورود به phpmyadmin

حالا وارد PHPMyAdmin شدیم و می‌توانیم به تمام اطلاعات دیتابیس سایت‌مان دسترسی داشته باشیم.

تغییر Charset دیتابیس

بیایید ابتدا Charset جداول جدید دیتابیس را تغییر دهیم تا اگر از این پس افزونه‌ای یک جدول جدید در دیتابیس سایت ما ایجاد کرد، با مشکل بهم ریختگی عبارات فارسی مواجه نشویم.

روی دیتابیس خود از سمت چپ کلیک کنید. سپس روی گزینه Operations کلیک کنید.

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

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

مشکل هم‌چنان پابرجاست!

چنان‌چه با انجام کارهای بالا مشکل برطرف نشد، باید از هاست خود بخواهید ماژول Mbstring را برای شما نصب کنند. اگر همچنان مشکل را دارید، باید اطلاعات موجود در دیتابیس خود را مجددا ایجاد کنید.

موفق باشید. 🙂

نظر شما در این مورد چیه؟

  1. U327561 ۱۴ مرداد ۱۴۰۲

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

    • Reza Rad رضا راد ۱۴ مرداد ۱۴۰۲

      سلام توی کدها چک کنید که اگه اعداد فارسی هستند به انگلیسی برگردانده بشن

    • U336212 ۲ فروردین ۱۴۰۳

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

  2. U43268 ۳ مهر ۱۴۰۰

    سلام
    کالیشن UTF8_percian_ci بهتر است یا کالیشن UTF-8 General CI چرا؟
    آیا با تنظیم کالیشن، کارکتر های فارسی نامک در سورس صفحه، فارسی نمایش داده میشه یا بهم ریخته
    چون جایی خوندم که اگه به هم ریخته بشه در سرعت تاثیر داره خصوصا در در صفحه اصلی، و این کد را گذاشته بود ولی مشکلی ایجاد کرد مجبور شدم کد را بردارم
    جلوگیری از اینکد کردن لینک های فارسی
    function urldecode_site( $url ) {
    if (!is_admin()) {

    $url = str_replace(get_home_url(),”,$url);
    $url = urldecode($url);
    return $url;
    }
    }

    add_filter( ‘post_link’, ‘urldecode_site’, 10, 3 );
    add_filter( ‘post_type_link’, ‘urldecode_site’, 10, 3 );
    add_filter( ‘page_link’, ‘urldecode_site’, 10, 3 );