Skip to content

Commit 168c9ef

Browse files
committed
Closes #5640: fix translatePress compatibility
1 parent 64f2b5b commit 168c9ef

File tree

1 file changed

+22
-7
lines changed

1 file changed

+22
-7
lines changed

inc/ThirdParty/Plugins/I18n/TranslatePress.php

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,29 @@
88

99
class TranslatePress implements Subscriber_Interface {
1010
/**
11+
* Translate Press Instance
12+
*
1113
* @var TRP_Translate_Press|null
1214
*/
1315
protected $translatepress;
1416

1517
/**
18+
* URL Converter component from TranslatePress
19+
*
1620
* @var mixed|\TRP_Language_Switcher|\TRP_Languages|\TRP_Settings|\TRP_Url_Converter|null
1721
*/
1822
protected $url_converter;
1923

24+
/**
25+
* Constructor.
26+
*/
2027
public function __construct() {
28+
if ( ! class_exists( 'TRP_Translate_Press' ) ) {
29+
return;
30+
}
31+
2132
$this->translatepress = TRP_Translate_Press::get_trp_instance();
22-
$this->url_converter = $this->translatepress->get_component( 'url_converter' );
33+
$this->url_converter = $this->translatepress->get_component( 'url_converter' );
2334
}
2435
/**
2536
* Returns an array of events that this subscriber wants to listen to.
@@ -54,9 +65,10 @@ public static function get_subscribed_events() {
5465
* @return string
5566
*/
5667
public function detect_homepage( $home_url, $url ) {
68+
add_filter( 'trp_add_language_to_home_url_check_for_admin', '__return_false' );
5769
$language = $this->url_converter->get_lang_from_url_string( $url );
5870
$url_language = $this->url_converter->get_url_for_language( $language, home_url() );
59-
71+
remove_filter( 'trp_add_language_to_home_url_check_for_admin', '__return_false' );
6072
return untrailingslashit( $url ) === untrailingslashit( $url_language ) ? $url : $home_url;
6173
}
6274

@@ -141,10 +153,12 @@ public function get_active_languages_uri( $urls ) {
141153

142154
$languages_to_display = $trp_settings['publish-languages'];
143155
$published_languages = $languages->get_language_names( $languages_to_display );
156+
add_filter( 'trp_add_language_to_home_url_check_for_admin', '__return_false' );
144157

145158
foreach ( $published_languages as $code => $name ) {
146159
$urls[] = $this->url_converter->get_url_for_language( $code, $home_url );
147160
}
161+
remove_filter( 'trp_add_language_to_home_url_check_for_admin', '__return_false' );
148162

149163
return $urls;
150164
}
@@ -188,22 +202,19 @@ public function get_home_url_for_lang( $home_url, $lang ) {
188202
return $home_url;
189203
}
190204

191-
$settings = $this->translatepress->get_component( 'settings' );
192-
$trp_settings = $settings->get_settings();
205+
$settings = $this->translatepress->get_component( 'settings' );
206+
$trp_settings = $settings->get_settings();
193207

194208
$code = '';
195209

196210
add_filter( 'trp_add_language_to_home_url_check_for_admin', '__return_false' );
197-
198211
foreach ( $trp_settings['url-slugs'] as $index => $slug ) {
199212
if ( $lang === $slug ) {
200213
$code = $index;
201214
break;
202215
}
203216
}
204-
205217
$url = $this->url_converter->get_url_for_language( $code, $home_url );
206-
207218
remove_filter( 'trp_add_language_to_home_url_check_for_admin', '__return_false' );
208219

209220
return $url;
@@ -230,10 +241,12 @@ public function get_translated_post_urls( $urls, $url, $post_type, $regex ) {
230241

231242
$languages_to_display = $trp_settings['publish-languages'];
232243
$published_languages = $languages->get_language_names( $languages_to_display );
244+
add_filter( 'trp_add_language_to_home_url_check_for_admin', '__return_false' );
233245

234246
foreach ( $published_languages as $code => $name ) {
235247
$urls[] = wp_parse_url( $this->url_converter->get_url_for_language( $code, $url ), PHP_URL_PATH ) . $regex;
236248
}
249+
remove_filter( 'trp_add_language_to_home_url_check_for_admin', '__return_false' );
237250

238251
return $urls;
239252
}
@@ -290,11 +303,13 @@ public function clear_post_after_updating_translation( $update_strings, $setting
290303
$clear_urls = [];
291304
$current_url = remove_query_arg( 'trp-edit-translation', $url );
292305

306+
add_filter( 'trp_add_language_to_home_url_check_for_admin', '__return_false' );
293307
foreach ( $settings['translation-languages'] as $language ) {
294308
if ( ! empty( $update_strings[ $language ] ) ) {
295309
$clear_urls[] = $this->url_converter->get_url_for_language( $language, $current_url, '' );
296310
}
297311
}
312+
remove_filter( 'trp_add_language_to_home_url_check_for_admin', '__return_false' );
298313

299314
rocket_clean_files( $clear_urls );
300315
}

0 commit comments

Comments
 (0)