Методы перевода PHP с WPML для многоязычной обработки URL-адресов

При создании многоязычных веб-сайтов с использованием WordPress популярным выбором является плагин WPML (WordPress Multilingual). Он предоставляет мощные функции для перевода контента, включая URL-адреса. В этой статье блога мы рассмотрим различные методы перевода PHP с помощью WPML для обработки многоязычных URL-адресов. Мы предоставим примеры кода для иллюстрации каждого метода, что позволит вам эффективно реализовать многоязычный перевод URL-адресов.

Метод 1: использование API переключения языка WPML
Плагин WPML предлагает API переключения языка, который позволяет создавать URL-адреса переключения языка. Вы можете использовать этот API для создания переведенных URL-адресов на основе текущего языка. Вот пример:

$current_url = 'http://example.com/my-page/';
$translated_url = apply_filters('wpml_permalink', $current_url, 'fr');
// Output: 'http://example.com/fr/ma-page/'

Метод 2: использование языковых фильтров URL-адресов WPML
WPML предоставляет фильтры, которые позволяют изменять структуру URL-адресов для конкретного языка. Используя эти фильтры, вы можете настроить способ добавления языкового кода в URL-адрес. Вот пример:

function custom_language_url_filter($url, $language_code, $default_language) {
    $url = str_replace('/' . $default_language . '/', '/' . $language_code . '/', $url);
    return $url;
}
add_filter('wpml_permalink', 'custom_language_url_filter', 10, 3);
// Output: 'http://example.com/fr/my-page/'

Метод 3. Создание собственных правил перезаписи URL-адресов.
Если вы предпочитаете более детальный контроль над процессом перевода URL-адресов, вы можете создать собственные правила перезаписи URL-адресов. Этот метод позволяет вам определять конкретные шаблоны и сопоставлять их с переведенными URL-адресами. Вот пример:

function custom_rewrite_rules() {
    add_rewrite_rule('^fr/my-page/?$', 'index.php?pagename=my-page&lang=fr', 'top');
}
add_action('init', 'custom_rewrite_rules');
// Output: 'http://example.com/fr/my-page/'

Метод 4: использование настройки языкового формата URL-адреса WPML
WPML предоставляет настройку языкового формата URL-адреса, которая позволяет вам выбрать способ добавления языкового кода к URL-адресу. Настроив этот параметр, вы можете управлять структурой переведенных URL-адресов. Вот пример:

// Set the language URL format to 'Different languages in directories'
add_filter('wpml_language_url_format', function () {
    return '2';
});
// Output: 'http://example.com/fr/my-page/'

Перевод URL-адресов — важнейший аспект создания многоязычных веб-сайтов. С помощью WPML и различных методов перевода PHP, обсуждаемых в этой статье, вы можете эффективно обрабатывать многоязычные URL-адреса в своих проектах WordPress. Независимо от того, решите ли вы использовать API переключателя языков WPML, языковые фильтры URL-адресов, собственные правила перезаписи URL-адресов или настройку языкового формата URL-адресов, у вас есть возможность адаптировать процесс перевода URL-адресов к вашим конкретным требованиям.