Языковые настройки для конкретной страницы WordPress

Вопрос или проблема

Мой сайт на английском языке и использует WordPress.

Html-код содержит lang=”en-US” только.

Но я хочу, чтобы часть страниц была на других языках, таких как испанский, арабский и немецкий.

Когда я создаю новую страницу, по умолчанию используется lang=”en-US”.

Как я могу установить lang=”es” или конкретный языковой атрибут?

Я пробовал много плагинов, но все они переводят все страницы на выбранные языки, что мне не нужно.

Вы упомянули, что хотите:

чтобы часть страниц была на других языках, таких как испанский, арабский и немецкий.

несколько строк на одной странице, написанных на иностранном языке, или что некоторые страницы вашего сайта на иностранном языке?

Потому что если весь ваш контент на английском языке, и вам нужно просто написать несколько строк или абзацев на иностранном языке, вы должны иметь возможность это сделать, а затем написать стили для их правильного отображения (например, добавив direction: rtl для арабского текста).

В случае последнего (некоторые страницы на иностранном языке), возможно, вы могли бы создать пользовательский шаблон для этих страниц с подходящими тегами и применить их? Тогда у вас будет стандартный шаблон, арабский, немецкий и испанский шаблон, которые будут отображаться в настройках вашей страницы.

Используйте locale или theme_locale хуки, чтобы изменить значение локали WordPress в зависимости от условий, таких как:

  • slug определенной страницы (/spanish-version/)
  • наличие определенного slug (es-) в $_SERVER['REQUEST_URI'])

Например:

function my_theme_locale( string $locale, string $domain ) {
    $current_uri = $_SERVER['REQUEST_URI'];
    if ( is_page( 'spanish-version' ) ) {
        $locale="es_ES";
        switch_to_locale( $locale );
    }
    return $locale;
}
add_filter( 'theme_locale', 'my_theme_locale', 10, 2 );

Вы можете даже вызвать load_theme_textdomain(), чтобы использовать логику перевода строк оригинальной темы WordPress.

Ответ или решение

Отвечая на ваш вопрос, как настроить языковые параметры для конкретной страницы на сайте WordPress, который по умолчанию работает на английском языке, мы рассмотрим несколько подходов. Важно отметить, что вы хотите, чтобы некоторые страницы были на других языках, таких как испанский, арабский и немецкий, а не переводить весь сайт.

1. Установка языкового атрибута lang

Для того чтобы установить атрибут lang для конкретной страницы, можно воспользоваться хуком в функции вашей темы. Вот простой способ, как это сделать:

function set_custom_page_language() {
    if ( is_page('spanish-version') ) {
        echo '<html lang="es">';
    } elseif ( is_page('arabic-version') ) {
        echo '<html lang="ar">';
    } elseif ( is_page('german-version') ) {
        echo '<html lang="de">';
    } else {
        echo '<html lang="en">';
    }
}
add_action('wp_head', 'set_custom_page_language');

В данном коде мы проверяем, является ли текущая страница одной из заданных, и устанавливаем нужный язык. Это решение легко модифицируется под ваши нужды.

2. Возможность использования кастомных шаблонов страниц

Другой способ — создать кастомные шаблоны страниц. Вы можете создать новые шаблоны для страниц на разных языках. Например, создайте файл page-spanish.php и добавьте в него следующий код:

<?php
/*
Template Name: Spanish Template
*/
?>
<html lang="es">
<head>
    <!-- Ваши мета-теги и подключения стилей -->
</head>
<body>
<!-- Контент страницы -->
<?php the_content(); ?>
</body>
</html>

Эти шаблоны будут доступны при создании или редактировании страниц в админ-панели WordPress, и вы сможете выбирать их для нужных страниц.

3. Использование хуков locale и theme_locale

Вы также можете использовать хук theme_locale, чтобы переключать локаль WordPress в зависимости от условия. Пример кода приведён ниже:

function my_theme_locale( $locale ) {
    if ( is_page('spanish-version') ) {
        return 'es_ES';
    } elseif ( is_page('arabic-version') ) {
        return 'ar';
    } elseif ( is_page('german-version') ) {
        return 'de_DE';
    }

    return $locale;
}
add_filter( 'theme_locale', 'my_theme_locale' );

Этот способ также позволяет загружать переводы строк, используя функцию load_theme_textdomain(), если вы хотите интегрировать это больше с многоязычными плагинами.

4. Примечания к реализации

  • Убедитесь, что в настройках вашей темы установлены правильные языковые параметры.
  • Когда вы создаёте страницы на другом языке, корректно задавайте тексты и элементы управления, такие как кнопки и заголовки.
  • Попробуйте протестировать каждую страницу, чтобы убедиться, что они отображаются с правильными мета-тегами и атрибутами lang.

Заключение

Таким образом, у вас есть несколько способов настройки языковых атрибутов на страницах WordPress. Важно выбрать тот, который наилучшим образом соответствует структуре вашего сайта и требованиям контента. Выбирая кастомные шаблоны или используя хуки, вы сможете обеспечить корректное отображение и поддержку разных языков на вашем сайте.

Оцените материал
Добавить комментарий

Капча загружается...