- الحالة
- محلولة بواسطة المطور
- أُبلغ عنها لـ
- WPML SEO 2.0.1
نظرة عامة على المشكلة
هذه مشكلة عامة في Yoast SEO (ليست خاصة بـ WPML) وقد أُبلغ عنها هنا.
إذا كنت تضبط تنسيق عناوين URL لعرض اللغة كمُعامل في WPML → اللغات، فستلاحظ أن الصفحات باللغات الثانوية المقسّمة إلى صفحات ستعرض رابطاً أساسياً غير صحيح.
حل بديل مؤقت
يُرجى إنشاء نسخة احتياطية كاملة لموقعك قبل المتابعة. ثم أضف الكود التالي في ملف القالب functions.php:
// define the wpseo_canonical callback
function wpmldp_filter_wpseo_canonical_lang_parameter_position( $canonical ) {
// decode URL
$canonical = urldecode($canonical);
// get current language
$my_current_lang = apply_filters( 'wpml_current_language', NULL );
// define ?lang parameter
$param = '?lang='.$my_current_lang;
// check if current $canonical contains the parameter
if(strpos($canonical, $param) !== false){
// remove the parameter from URL
$canonical = str_replace('/'.$param, "", $canonical);
// add it again
$canonical = $canonical.$param;
}
return $canonical;
};
// add the filter
add_filter( 'wpseo_canonical', 'wpmldp_filter_wpseo_canonical_lang_parameter_position', 999 );
