- الحالة
- محلولة بواسطة المطور
- الإضافة/القالب ذو الصلة
- WP Event Manager
- وسوم الموضوع
- Compatibility
نظرة عامة على المشكلة
عند ترجمة الأحداث التي تم إنشاؤها باستخدام WP Event Manager وWPML، لا تُعرض حقول المنظّم والمكان دائماً باللغة الافتراضية في الواجهة الأمامية.
حل بديل مؤقت
يُرجى التأكد من أخذ نسخة احتياطية كاملة لموقعك قبل المتابعة.
ستحتاج إلى إجراء التغييرات التالية.
- اذهب إلى WPML → إعدادات → ترجمة الحقول المخصصة
- عيّن الحقلين المخصصين _event_organizer_ids و _event_venue_ids إلى نسخ.
- ثم، افتح الملف /wp-content/plugins/wp-event-manager/wp-event-manager-template.php.
- ابحث عن السطر 1229.
- غيّر:
foreach ($post->_event_organizer_ids as $key => $organizer_id) {إلى:
foreach ($post->_event_organizer_ids as $key => $organizer_id) { // WPML Workaround for compsupp-6662 if (class_exists('SitePress')) { $organizer_id = apply_filters( 'wpml_object_id', $organizer_id, 'event_organizer', TRUE ); } - بعد ذلك، افتح الملف /wp-content/plugins/wp-event-manager/wp-event-manager-functions.php.
- ابحث عن السطر 1903.
- غيّر:
function get_event_organizer_ids( $post = null ) { $post = get_post( $post ); if ( $post->post_type !== 'event_listing' ) return; return !empty($post->_event_organizer_ids) ? $post->_event_organizer_ids : ''; }إلى:
function get_event_organizer_ids( $post = null ) { $post = get_post( $post ); if ( $post->post_type !== 'event_listing' ) { return; } // WPML Workaround for compsupp-6662 if ( class_exists('SitePress') && !empty($post->_event_organizer_ids) ) { foreach ($post->_event_organizer_ids as $key => $organizer_id ) { $result = $post->_event_organizer_ids; $result[$key] = apply_filters( 'wpml_object_id', $organizer_id, 'event_organizer', TRUE ); } return $result; } return !empty($post->_event_organizer_ids) ? $post->_event_organizer_ids : ''; } - أخيراً، في نفس الملف، ابحث عن السطر 1985.
- غيّر:
function get_event_venue_ids( $post = null ) { $post = get_post( $post ); if ( $post->post_type !== 'event_listing' ) return; return !empty($post->_event_venue_ids) ? $post->_event_venue_ids : ''; }إلى:
function get_event_venue_ids( $post = null ) { $post = get_post( $post ); if ( $post->post_type !== 'event_listing' ) return; // WPML Workaround for compsupp-6662 if ( class_exists('SitePress') && !empty($post->_event_venue_ids) ) { $result = apply_filters( 'wpml_object_id', $post->_event_venue_ids , 'event_listing', TRUE ); return $result; } return !empty($post->_event_venue_ids) ? $post->_event_venue_ids : ''; }