- На моем веб-сайте два языка — английский (по умолчанию) и th
- язык разделен «папкой», а язык по умолчанию не указан.
- У меня есть собственные шорткоды, которые добавляют ссылки на связанные сообщения/объекты. li>
- Я использую эти короткие коды внутри шаблонов PHP и непосредственно на странице.
При использовании короткого кода внутри редактора на обоих языках ссылки работают правильно, поэтому, когда я определяю в коротком коде PHP ссылку на: /review/post-name, ссылки заменяются на th/ คาสิโนรีวิว/ (обратите внимание на добавление префикса th и перевод строки review).
При использовании короткого кода внутри шаблона php ссылки не переводятся, а префикс не добавлено, поэтому ссылки по всему сайту практически не работают.
Примечание: около 6–12 месяцев назад это работало на 100 %, поэтому я не уверен, что это ошибка WordPress ИЛИ wpml.
Код короткого кода:
Код: Выделить всё
ob_start();
include(get_stylesheet_directory().'/shortcodes/templates/casinos-cards.php');
}
$output = ob_get_clean();
return $output;
Код: Выделить всё
while ( $casinos_pods->fetch() ) {
$casino_id = $casinos_pods->field ('ID');
if ( ! empty( $casino_id ) ) {
$casino_name = $casinos_pods->field( 'post_title' );
$casino_review_url = '/review/'.$casinos_pods->field( 'post_name' ).'/';
$casino_score = $casinos_pods->field ('editor_score');
$casino_pros = $casinos_pods->field ('pros');
$casino_image = get_the_post_thumbnail_url($casino_id, 'thumbnail', true);
if (!$casino_image) {
$casino_image = get_site_url().'/wp-content/themes/rehub/images/default/noimage_500_500.png';
}
$casino_url = '/go/'.$casinos_pods->field ('main_bonus.post_name');
$main_bonus_id = $casinos_pods->field('main_bonus.ID');
$main_bonus_category = get_the_terms($main_bonus_id,'thirstylink-category');
$main_bonus_category = $main_bonus_category[0]->slug;
$main_bonus_text = $casinos_pods->field ('main_bonus.bonus_description');
$main_bonus_short_text = $casinos_pods->field ('main_bonus.short_description');
$main_button_text = $casinos_pods->field ('main_bonus.button_text');
$casino_badge_name = $casinos_pods->field('casino_badge.name');
$casino_badge_color = $casinos_pods->field('casino_badge.badge_color');
}
?>
Код: Выделить всё
$casino_review_url = '/review/'.$casinos_pods->field( 'post_name' ).'/';
При вызове короткого кода из в классическом редакторе он работает корректно: [casinos template='cards' limit='5']แนะนำคาสิโนที่ชื่นชอบ[/casinos]
При вызове шорткода из шаблона php отображаемые ссылки не переводятся:
Код: Выделить всё
Подробнее здесь: [url]https://stackoverflow.com/questions/78829756/shortcode-rendering-with-page-language-in-wordpress-php-templates-vs-builder-cl[/url]