@LastGeneral

Как подставлять разные страницы на разных языках?

Как сделать так что бы на разных страницах подгружало разные файлы?
<?php
$locale = get_locale();
if($locale == 'pl_PL'){
    $download_text = 'Pobierz<br>katalog ';
	$link_catalog = 'pll_get_post(2341)';
}else if($locale == 'lt_LT'){
    $download_text = 'Parsisiųsti<br>katalogą';
	$link_catalog = 'pll_get_post(2339)';
}else{
    $download_text = 'Download<br>catalog';
	$link_catalog = 'pll_get_post(14)';
}?>
<div class="catalog-file">
    <a href="<?=get_field('catalog-file', pll_get_post(2341));?>" download title="catalog file">
        <span><?=$download_text;?></span>
    </a>
</div>
  • Вопрос задан
  • 29 просмотров
Пригласить эксперта
Ответы на вопрос 1
artzolin
@artzolin Куратор тега WordPress
php, WordPress разработка сайтов artzolin.ru
Я бы вообще не стал загружать файлы каталога в медиа. Сомневаюсь, что кто-то когда-то их будет менять, поэтому я бы закинуть их в папку data в теме как есть, но вы всегда сможете адаптировать пример ниже под себя

if ( is_plugin_active( 'polylang/polylang.php' )  ) {
	$locale = get_locale();
	$data = [
		'pl_PL' => [
			'text' => 'Pobierz<br>katalog',
			'file' => 'price-pl.xlsx',
		],
		'lt_LT' => [
			'text' => 'Parsisiųsti<br>katalogą',
			'file' => 'price-lt.xlsx',
		],
		'en_US' => [
			'text' => 'Download<br>catalog',
			'file' => 'price-en.xlsx',
		],
	];

	echo '<div class="catalog-file">';
	   echo '<a href="' . get_stylesheet_directory_uri() . '/data/' . $data[$locale]['file'] . '" download="' . $data[$locale]['file'] . '">' . $data[$locale]['text'] . '</a>';
	echo '</div>';
}


PS Перед выводом файла уместно сделать проверку на его существование

if ( file_exists( $file ) && filesize( $file ) > 0  ) {
	// выводим, если существует
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы