PluginProbe
Translate and Go multilingual – Automatic AI translation – wpLingua / 2.16.7
Translate and Go multilingual – Automatic AI translation – wpLingua v2.16.7
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 1.1.0 All 112 releases
wplingua / inc / hreflang.php

hreflang.php in Translate and Go multilingual – Automatic AI translation – wpLingua 2.16.7, at inc/hreflang.php

117 lines 2.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 // If this file is called directly, abort.
4 if ( ! defined( 'WPINC' ) ) {
5 die;
6 }
7
8
9 /**
10 * Print HTML of alternate link with hreflang for each available languages
11 *
12 * @return void
13 */
14 function wplng_link_alternate_hreflang() {
15
16 echo '<meta name="google" content="notranslate">' . PHP_EOL;
17
18 if ( ! wplng_url_is_translatable() ) {
19 return;
20 }
21
22 $html = PHP_EOL;
23 $language_website = wplng_get_language_website();
24 $languages_target = wplng_get_languages_target();
25 $url_x_default = '';
26
27 if ( empty( $language_website ) || empty( $languages_target ) ) {
28 return;
29 }
30
31 // Get and clear original URL
32 $url_original = wplng_get_url_original();
33 $url_original = remove_query_arg(
34 array( 'wplng-mode', 'wplng-load', 'nocache' ),
35 $url_original
36 );
37
38 // Create the starting comment
39 $html .= '<!-- This website is made multilingual with the wpLingua plugin -->';
40 $html .= PHP_EOL;
41
42 // Create meta generator
43 $html .= '<meta';
44 $html .= ' name="generator"';
45 $html .= ' content="wpLingua ' . esc_attr( WPLNG_PLUGIN_VERSION ) . '"';
46 $html .= '/>' . PHP_EOL;
47
48 if ( empty( get_option( 'wplng_hreflang', true ) ) ) {
49 echo $html . PHP_EOL;
50 return;
51 }
52
53 // Create alternate link for website language
54
55 if ( 'en' === $language_website['id'] ) {
56 $url_x_default = $url_original;
57 }
58
59 $html .= '<link';
60 $html .= ' rel="alternate"';
61 $html .= ' href="' . esc_url( $url_original ) . '"';
62 $html .= ' hreflang="' . esc_attr( $language_website['id'] ) . '"';
63 $html .= '/>' . PHP_EOL;
64
65 // Create alternate link for each target languages
66 foreach ( $languages_target as $language_target ) {
67
68 $url = wplng_url_translate(
69 $url_original,
70 $language_target['id']
71 );
72
73 if ( 'en' === $language_target['id'] ) {
74 $url_x_default = $url;
75 }
76
77 $html .= '<link';
78 $html .= ' rel="alternate"';
79 $html .= ' href="' . esc_url( $url ) . '"';
80 $html .= ' hreflang="' . esc_attr( $language_target['id'] ) . '"';
81 $html .= '/>' . PHP_EOL;
82 }
83
84 // Create alternate link for x-default
85
86 if ( '' === $url_x_default ) {
87 $url_x_default = $url_original;
88 }
89
90 $url_x_default = apply_filters( 'wplng_hreflang_x_default', $url_x_default );
91
92 if ( ! empty( $url_x_default ) ) {
93 $html .= '<link';
94 $html .= ' rel="alternate"';
95 $html .= ' href="' . esc_url( $url_x_default ) . '"';
96 $html .= ' hreflang="x-default"';
97 $html .= '/>' . PHP_EOL;
98 }
99
100 // Create the ending comment
101 $html .= '<!-- / wpLingua plugin. -->' . PHP_EOL . PHP_EOL;
102
103 echo $html;
104 }
105
106
107 /**
108 * Disable web browser automatic translation by adding attribute to HTML tag
109 * <html lang="??_??" translate="no">
110 *
111 * @param string $attr
112 * @return string $attr
113 */
114 function wplng_disable_web_browser_auto_translate( $attr ) {
115 return $attr . ' translate="no"';
116 }
117