- Статус
- Ожидается ответ автора
- Связанный плагин/тема
- Yoast SEO
- Теги темы
- Compatibility
Обзор проблемы
При ручном редактировании перевода категории товаров в меню Товары > Категории Yoast SEO Premium ошибочно создавал 301-редиректы, даже если изменялось только описание/текст категории (а не слаг).
Созданные редиректы содержат некорректные URL-адреса:
Старый URL: http://site.com/product-category/test-es-wpml
Новый URL: http://site.com/http://es.site.com/product-category/test-es-wpml/ (двойной URL!)
Примечание: это визуальная ошибка, эти редиректы не вызывают проблем с навигацией
Обходное решение
Пожалуйста, перед продолжением убедитесь, что у Вас есть полная резервная копия Вашего сайта.
- Откройте файл …/wp-content/plugins/wordpress-seo-premium/classes/term-watcher.php.
- Найдите функцию «protected function get_target_url(», она находится примерно на строке 241.
- Замените:
protected function get_target_url( $tag, $taxonomy ) { // Get the term link. $term_link = get_term_link( $tag, $taxonomy ); // Return early if the term link is not a string, i.e. a WP_Error Object. if ( ! is_string( $term_link ) ) { return ''; } return str_replace( home_url(), '', $term_link ); }
- На:
protected function get_target_url( $tag, $taxonomy ) { // Get the term link. $term_link = get_term_link( $tag, $taxonomy ); // Return early if the term link is not a string, i.e. a WP_Error Object. if ( ! is_string( $term_link ) ) { return ''; } // Extract the path to handle WPML subdomain URLs (matches post-watcher behavior). $url = wp_parse_url( $term_link ); if ( is_array( $url ) && isset( $url['path'] ) ) { return $url['path']; } return ''; }