ویژگی تصویر

آموزش تابع language_attributes() در وردپرس و کاربرد آن

  /  وردپرس   /  تابع language_attributes در وردپرس
بنر تبلیغاتی الف
wp - wordpress - وردپرس

تابع language_attributes() یکی از توابع ساده ولی مهم وردپرس است که مسئول تولید صفت‌های زبان و جهت متن برای تگ <html> در قالب‌هاست. این تابع به صورت پیش‌فرض خروجی مناسبی بسته به زبان سایت و جهتیت متن (LTR یا RTL) تولید می‌کند و از نظر دسترسی (accessibility) و سئو اهمیت بالایی دارد.

چرا استفاده از language_attributes() ضروری است؟

  • به موتورهای جستجو و ابزارهای ترجمه کمک می‌کند زبان صفحه را تشخیص دهند (مثلاً fa-IR).
  • برای خوانندگان صفحه‌خوان (screen readers) و سایر ابزارهای دسترسی اهمیت دارد.
  • برای نمایش صحیح متن‌های راست‌به‌چپ (مثل فارسی) نیاز به صفت dir="rtl" است؛ این تابع آن را اضافه می‌کند.
  • سازگاری با HTML5 و (در صورت نیاز) XHTML از طریق پارامترها فراهم می‌شود.

نحوه استفاده پایه در فایل header.php

<!DOCTYPE html>
<html <?php language_attributes(); ?>>
<head>
    <meta charset="<?php bloginfo( 'charset' ); ?>">
    ...

توضیح: این قطعه در هدر قالب معمول است. تابع language_attributes() مستقیماً صفت‌هایی مانند lang="fa-IR" و در صورت فعال بودن RTL، dir="rtl" را چاپ می‌کند.

خروجی‌های معمول تابع

حالتخروجی نمونهتوضیح
HTML5 (پیش‌فرض)lang="en-US" dir="ltr"برای صفحات HTML5؛ تنها lang و در صورت نیاز dir
XHTMLxmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US" dir="ltr"در حالت XHTML نام‌فضا و xml:lang نیز اضافه می‌شود
زبان فارسی با RTLlang="fa-IR" dir="rtl"مشخصهٔ سایت‌های فارسی؛ جهت راست‌به‌چپ نمایش داده می‌شود

پارامترها و فیلترها

تابع language_attributes() یک پارامتر می‌پذیرد که معمولاً مقدار آن 'html' یا 'xhtml' است. سپس خروجی از طریق فیلتر language_attributes قابل تغییر است. این فیلتر به توسعه‌دهندگان اجازه می‌دهد صفت‌های دلخواه به تگ <html> اضافه کنند (مثلاً prefix برای Open Graph).

نمونه: افزودن صفت prefix برای Open Graph

add_filter( 'language_attributes', 'my_prefix_language_attributes' );
function my_prefix_language_attributes( $output ) {
    // اضافه کردن ویژگی prefix برای پشتیبانی از Open Graph
    $output .= ' prefix="og: http://ogp.me/ns#"';
    return $output;
}

توضیح: در این مثال با استفاده از فیلتر language_attributes خروجی تابع را تغییر می‌دهیم و یک صفت جدید prefix را اضافه می‌کنیم. این روش تمیزی برای افزودن متادیتای خاص در سطح تگ <html> است بدون دست‌کاری مستقیم فایل‌های قالب.

نمونه: کنترل دقیق‌تر (بازگرداندن رشته به جای echo)

function my_language_attributes_return() {
    // گرفتن مقدار پیش‌فرض با اعمال فیلتر
    $attributes = '';
    $attributes .= ' lang="' . get_bloginfo( 'language' ) . '"';
    if ( is_rtl() ) {
        $attributes .= ' dir="rtl"';
    }
    // امکان تغییر از طریق فیلتر
    return apply_filters( 'my_custom_language_attributes', $attributes );
}
// سپس در قالب:
<html <?php echo my_language_attributes_return(); ?>>

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

نکات و بهترین شیوه‌ها

  • همیشه از language_attributes() در تگ <html> قالب استفاده کنید تا وردپرس زبان و جهت را به درستی مدیریت کند.
  • برای سایت‌های چندزبانه از پلاگین‌های شناخته‌شده (مثلاً WPML، Polylang) استفاده کنید چون معمولاً زبان هر صفحه را به‌درستی تنظیم می‌کنند.
  • اگر نیاز به افزودن صفت‌های اضافی دارید از فیلتر language_attributes استفاده کنید تا قابلیت به‌روزرسانی قالب حفظ شود.
  • در صفحات AMP یا مپ HTML ممکن است لازم باشد خروجی را به شکل خاصی تنظیم کنید؛ از فیلترها استفاده کنید نه تغییر مستقیم فایل‌های هسته.

تأثیر بر سئو و دسترسی

صفت lang برای موتورهای جستجو و سرویس‌های ترجمه اهمیت دارد. همچنین ابزارهای خواندن صفحه برای کاربران نابینا یا کم‌بینا از این صفت برای انتخاب دستور زبان و تلفظ صحیح استفاده می‌کنند. برای سایت‌های چندزبانه استفاده از hreflang در هدر یا نقشه سایت نیز توصیه می‌شود — اما این موضوع مکمل کار language_attributes() است و نه جایگزین آن.

نتیجه‌گیری سریع

تابع language_attributes() یک قطعه مهم و ساده برای هر قالب وردپرس است که زبان و جهت متن را مدیریت می‌کند. استفاده صحیح از آن، بخصوص برای زبان‌های RTL مانند فارسی، باعث تجربه کاربری بهتر، دسترسی بیشتر و بهبود سئو می‌شود. اگر نیاز به افزودن ویژگی‌های دلخواه دارید، از فیلترها بهره ببرید تا سازگاری و به‌روزرسانی قالب حفظ شود.

آیا این مطلب برای شما مفید بود ؟

خیر
بله
موضوعات شما در انجمن: