סקירת התקלה
בעת שימוש ב־WPML עם התוסף הנלווה Applications של WP Job Manager, לוח בקרת המשרות מציג באופן שגוי טופסי מועמדות מכל השפות, במקום להציג רק את הטפסים בשפה הנוכחית. הדבר משפיע על טופס עריכת המשרה ויוצר בלבול עבור המשתמשים.
פתרון עוקף
אנא ודא שיש לך גיבוי מלא של האתר לפני שתמשיך.
- פתח את הקובץ …/\wp-content/plugins/wp-job-manager-applications/includes/wp-job-manager-applications-functions.php.
- חפש את שורה 302.
- החלף את:
function get_application_forms() { $posts = new WP_Query( array( 'post_type' => 'job_application_form', 'posts_per_page' => - 1, 'suppress_filters' => true, 'orderby' => 'title', 'order' => 'ASC', ) ); $default_form = WP_Job_Manager_Applications_Default_Form::get_default_form(); if ( $posts->post_count <= 1 ) { return null; } $application_forms = []; if ( array_key_exists( 'ID', $default_form ) ) { $application_forms[ $default_form['ID'] ] = $default_form['post_title']; } foreach ( $posts->posts as $post ) { $application_forms[ $post->ID ] = $post->post_title; } return apply_filters( 'job_application_forms', $application_forms ); } - ב:
// WPML Workaround for compsupp-7797 function get_application_forms() { $posts = new WP_Query( array( 'post_type' => 'job_application_form', 'posts_per_page' => - 1, 'suppress_filters' => false, // replace true with false 'orderby' => 'title', 'order' => 'ASC', ) ); $default_form = WP_Job_Manager_Applications_Default_Form::get_default_form(); if ( $posts->post_count < 1 ) { // replace <= with < return null; } $application_forms = []; /* comment out this part if you don't want to see the default form in other languages if ( array_key_exists( 'ID', $default_form ) ) { $application_forms[ $default_form['ID'] ] = $default_form['post_title']; }*/ foreach ( $posts->posts as $post ) { $application_forms[ $post->ID ] = $post->post_title; } return apply_filters( 'job_application_forms', $application_forms ); }