PluginProbe
Translate and boost SEO – Automatic AI translation – wpLingua / 2.16.8
Translate and boost SEO – Automatic AI translation – wpLingua v2.16.8
2.16.8 2.16.7 2.16.6 2.16.5 2.16.4 2.16.3 2.16.2 2.16.1 2.16.0 2.15.2 2.15.1 2.15.0 2.14.3 2.14.2 2.14.1 2.14.0 2.13.1 2.13.0 2.12.3 2.12.2 2.12.1 trunk 1.0.3 1.0.4 1.0.5 All 113 releases
← All changes | inc/languages.php +22 -9 2.12.22.16.8 View file →
@@ -201,11 +201,10 @@
201 201
202 202 // Get target language ID
203 203 if ( empty( $language_target ) ) {
204 204 $language_target = wplng_get_language_current_id();
205 - } else {
206 - $language_target_id = wplng_get_language_id( $language_target );
207 205 }
206 + $language_target_id = wplng_get_language_id( $language_target );
208 207
209 208 // Get language array
210 209 if ( empty( $language['id'] ) ) {
211 210 $language = wplng_get_language_by_id( $language );
@@ -327,10 +326,12 @@
327 326 * @return array
328 327 */
329 328 function wplng_get_languages_target_ids() {
330 329
331 - if ( ! empty( $languages ) ) {
332 - return $languages;
330 + global $wplng_languages_target_ids;
331 +
332 + if ( null !== $wplng_languages_target_ids ) {
333 + return $wplng_languages_target_ids;
333 334 }
334 335
335 336 $languages_target = wplng_get_languages_target();
336 337 $languages_target_ids = array();
@@ -338,8 +339,10 @@
338 339 foreach ( $languages_target as $language_target ) {
339 340 $languages_target_ids[] = $language_target['id'];
340 341 }
341 342
343 + $wplng_languages_target_ids = $languages_target_ids;
344 +
342 345 return $languages_target_ids;
343 346 }
344 347
345 348
@@ -376,9 +379,12 @@
376 379 return $language;
377 380 }
378 381 }
379 382
380 - return wplng_get_language_website_id();
383 + $website_language_id = wplng_get_language_website_id();
384 + $wplng_language_current_id = $website_language_id;
385 +
386 + return $website_language_id;
381 387 }
382 388
383 389
384 390 /**
@@ -408,9 +414,9 @@
408 414 /**
409 415 * Get language data from ID
410 416 *
411 417 * @param string $language_id
412 - * @return array
418 + * @return array|false Language data array, or false if not found
413 419 */
414 420 function wplng_get_language_by_id( $language_id ) {
415 421
416 422 $all_languages = wplng_get_languages_all();
@@ -420,9 +426,14 @@
420 426 return $language;
421 427 }
422 428 }
423 429
424 - // Return a default value if $language_id not exist
430 + // Avoid infinite recursion: if 'en' itself is not found, return false
431 + if ( 'en' === $language_id ) {
432 + return false;
433 + }
434 +
435 + // Return English as fallback if the requested language ID does not exist
425 436 return wplng_get_language_by_id( 'en' );
426 437 }
427 438
428 439
@@ -577,11 +588,13 @@
577 588 $languages_alow = wplng_get_api_languages_target();
578 589 $languages = array();
579 590
580 591 if ( 'all' === $languages_alow ) {
581 - return wplng_get_languages_all();
592 + $wplng_languages_allow = wplng_get_languages_all();
593 + return $wplng_languages_allow;
582 594 } elseif ( empty( $languages_alow ) || ! is_array( $languages_alow ) ) {
583 - return array();
595 + $wplng_languages_allow = array();
596 + return $wplng_languages_allow;
584 597 } else {
585 598 foreach ( $languages_alow as $language_id_alow ) {
586 599 $languages[] = wplng_get_language_by_id( $language_id_alow );
587 600 }