تابع language_attributes در وردپرس
تابع 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 |
| XHTML | xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US" dir="ltr" | در حالت XHTML نامفضا و xml:lang نیز اضافه میشود |
| زبان فارسی با RTL | lang="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 مانند فارسی، باعث تجربه کاربری بهتر، دسترسی بیشتر و بهبود سئو میشود. اگر نیاز به افزودن ویژگیهای دلخواه دارید، از فیلترها بهره ببرید تا سازگاری و بهروزرسانی قالب حفظ شود.
آیا این مطلب برای شما مفید بود ؟




