apply_filters( 'wpml_active_languages', mixed $empty_value, array|string $args )
- النوع
- filter
- إصدار WPML
- 3.2
الوصف
يصفّي قائمة اللغات المُمكّنة (النشطة) للموقع. يُستخدم هذا المرشِّح عادةً لإنشاء مبدلات لغة مخصصة.
لا يمكن أن يعمل هذا المرشِّح إلا بعد تهيئة الكائن العام $wp_query. وهذا يعني أنه يجب استدعاؤه بعد تنفيذ الإجراء wp action.
تُرجع WPML اللغات النشطة (المُمكّنة) للموقع في شكل مصفوفة تحتوي على المعلومات المتعلقة بكل لغة. على سبيل المثال، في موقع WordPress يعمل باللغات الإنجليزية والفرنسية والإيطالية، سيُرجع الخطّاف ما يلي:
Array ( [en] => Array ( [id] => 1 [active] => 1 [default_locale] => en_US [native_name] => English [missing] => 0 [translated_name] => English [language_code] => en [country_flag_url] => http://yourdomain/wpmlpath/res/flags/en.png [url] => http://yourdomain/about ) [fr] => Array ( [id] => 4 [active] => 0 [default_locale] => fr_FR [native_name] => Français [missing] => 0 [translated_name] => French [language_code] => fr [country_flag_url] => http://yourdomain/wpmlpath/res/flags/fr.png [url] => http://yourdomain/fr/a-propos ) [it] => Array ( [id] => 27 [active] => 0 [default_locale] => it_IT [native_name] => Italiano [missing] => 0 [translated_name] => Italian [language_code] => it [country_flag_url] => http://yourdomain/wpmlpath/res/flags/it.png [url] => http://yourdomain/it/circa ) )
يوفّر المرشِّح wpml_active_languages طريقة لتنفيذ مهام مثل إعادة ترتيب مصفوفة اللغات. أو إجراءات أكثر تعقيداً، مثل إعادة توجيه اللغات غير الموجودة إلى عنوان URL مخصص.
الوسطاء
- $empty_value
- (مختلط) (مطلوب) هذه عادةً هي القيمة التي سيعدّلها المرشِّح. نحن لا نرشّح أي شيء هنا، لذا اضبط هذه القيمة على NULL. هذا لكي تتلقى دالة المرشِّح قائمة الوسائط الكاملة فعلياً
- $args
- (مصفوفة|سلسلة نصية) (اختياري) وسائط لترشيح مخرجات اللغة
- skip_missing(منطقي) كيفية التعامل مع اللغات التي لا تحتوي على ترجمات.
1لتخطي اللغة أو0للربط بالصفحة الرئيسية للغة للترجمات المفقودة. - link_empty_to(سلسلة نصية) يعمل بالاقتران مع skip_missing = 0 ويتيح استخدام روابط مخصصة للغات التي لا تحتوي على ترجمات للعنصر الحالي. يمكن استخدام
{%lang}كعنصر نائب لرمز اللغة. فارغ افتراضياً. - orderby(سلسلة نصية) يقبل
id|code|name. القيمة الافتراضية هي custom. يمكن تعريف الترتيب المخصص في لوحة تحكم WordPress ضمن WPML » اللغات » خيارات مبدل اللغة - order(سلسلة نصية) يقبل
asc|desc
- skip_missing(منطقي) كيفية التعامل مع اللغات التي لا تحتوي على ترجمات.
مثال على الاستخدام
يمكن تمرير وسائط المرشِّح إليه على شكل سلسلة نصية كما هو موضح في المثال الأول أدناه. ويمكن أيضاً تمريرها على شكل مصفوفة كما ترى في المثال الثاني لاحقاً.
في المثال أدناه، نعرض مبدل لغة يحتوي على أعلام فقط. ومع ذلك، هناك اختلاف بسيط عن مبدل اللغة الذي يحتوي على أعلام فقط والذي يمكنك تكوينه من «إعدادات لغة WPML» في لوحة التحكم.
الاختلاف هنا هو أن اللغة الحالية لن تكون مغلفة داخل رابط. فقط اللغات البديلة للصفحة ستحتوي على رابط. ألقِ نظرة.
مثال
function my_flag_only_language_switcher() {
$languages = apply_filters( 'wpml_active_languages', NULL, 'orderby=id&order=desc' );
if ( !empty( $languages ) ) {
foreach( $languages as $l ) {
if ( !$l['active'] ) echo ' <a href="' . esc_url( $l['url'] ) . '">';
echo '<img src="' . esc_url ( $l['country_flag_url'] ) . '" height="12" alt="' . esc_attr( $l['language_code'] ) . '" width="18" />';
if ( !$l['active'] ) echo '</a> ';
}
}
}
في المثال التالي الذي تراه أدناه، نعيد توجيه اللغات المفقودة إلى صفحة مخصصة حيث نعرض نموذج اتصال للأشخاص لإبلاغ مسؤول الموقع عن المحتوى غير المترجم.
نقوم أيضاً بتكبير الحرف الأول من اسم اللغة للغة النشطة، أي اللغة التي نعرضها حالياً، باستخدام دالة
strtoupper في PHP.
مثال ثانٍ
function my_custom_language_switcher() {
$languages = apply_filters( 'wpml_active_languages', NULL, array( 'skip_missing' => 0, 'link_empty_to' => 'http://domain.com/missing-translation-contact-form' ) );
if( !empty( $languages ) ) {
foreach( $languages as $language ){
$native_name = $language['active'] ? strtoupper( $language['native_name'] ) : $language['native_name'];
if( !$language['active'] ) echo '<a href="' . esc_url( $language['url'] ) . '">';
echo esc_html( $native_name ) . ' ';
if( !$language['active'] ) echo '</a>';
}
}
}
خطاطيف ذات صلة
wpml_decode_custom_field, wpml_footer_language_selector, wpml_add_language_form_field, wpml_ls_exclude_in_menu, wpml_is_rtl, wpml_alternate_hreflang, wpml_head_langs, wpml_must_translate_canonical_url, wpml_browser_redirect_language_params, wpml_encode_custom_field
جميع خطاطيف معلومات اللغة على مستوى الموقع البالغ عددها 29 →