Как увеличить длину URL в WordPress1 min read

Распечатать
Поделиться статьей: ardua.ru/cyrillic-length-url

Как увеличить длину русского urla в WordPress.

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (21 оценок, среднее: 5,00 из 5)
Загрузка...
Длина url для русского сайта на WordPress
Длина url для русского сайта на WordPress

Инструкция увеличения стандартной длины URL 200 символов.

Инструкция актуальна для WordPress 4.7. Чтобы увеличить длину url для поста в вордпресс нужно:

  1. Изменить значения в файлах formatting.php и schema.php
  2. Изменить размер поля в БД

А теперь подробнее.

Внимание! Обновление 22.06.2017

В комментариях добавили верное замечание (спасибо JC).

Рекомендация: фундаментальные изменения, затрагивающие core functionality должны паковаться в плугин, или в сниппет для functions.php

Все эти чудесные манипуляции с core файлами будут уничтожены при следующем ручном или автоматическом апдейте WP.

 Файлы formatting.php и schema.php

Редактирование schema.php

Воспользуемся FTP клиентом FileZilla и перейдем в каталог /wp-admin/includes/

Каталог includes в wp-admin
Каталог includes в wp-admin

Находим файл schema.php и открывает для изменения 169 строки

  post_name varchar(200) NOT NULL default '',

Так вот значение 200 это и есть текущее ограничение, которое обрезает длину.

Меняем значение post_name, например, на 400.

Сохраняем и загружаем измененный файл на сервер.

Редактирование formatting.php

Переходим в /wp-includes/ и находим файл formatting.php

файл formatting.php в WordPress wp-includes
файл formatting.php в WordPress wp-includes

В нем мы редактируем 1978 строку кода:

$title = utf8_uri_encode($title, 200);

Так же меняем значение $title на 400.

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

Редактирование длины URL в базе данных WordPress

SQL запросом

В моем случае можно было использовать такой запрос:

ALTER TABLE `your_prefix_posts` CHANGE `post_name` `post_name` VARCHAR(400) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '';

Где your_prefix_posts :

  1. your_prefix — это префикс указанный при создании сайта на WordPress;
  2. _posts — это стандартное имя таблицы в БД.

Редактирование поля post_name таблицы posts с помощью phpmyadmin

  1. Зайдя в phpmyadmin, выбираем базу данных сайта на WordPress.
  2. Затем ищем таблицу prefix*_posts. (prefix* — это ваш префикс, который вы выбрали при создании сайта. По умолчанию wp_posts.
  3. Переходим со вкладки «Обзор» (русский интерфейс phpmyadmin) в «Структура» — тем самым мы увидим не значения таблиц, а их структуру (тип, кодировку, значения по умолчанию)
  4. Выбираем поле post_name и нажимаем «Изменить«.
  5. Изменяем стандартную длину 200 на 400.

Инструкция скриншотами:

Поиск таблицы в PHPMYADMIN
Поиск таблицы в PHPMYADMIN
Поле post_name в таблице posts в phpmyadmin (WordPress)
Поле post_name в таблице posts в phpmyadmin (WordPress)
Изменение длины поля post_name phpMyAdmin
Изменение длины поля post_name phpMyAdmin

Поздравляю! Теперь вы знаете как увеличить длину кириллического urla для своего сайта на WordPress.

 

Информация
Как увеличить длину URL в WordPress
Название статьи
Как увеличить длину URL в WordPress
Описание
Инструкция по увеличению стандартной длины URL 200 символов в WordPress 4.7. Длина post_name и title для постов в блоге. Файлы formatting.php и schema.php.
Автор
Публикатор
Ardua
Лого публикатора

8 комментариев

    1. Изначально WordPress был рассчитан на латиницу, а именно на английский язык. Длина английских слов меньше, чем в русском.
      распределение русских слов - средняя длина
      Распределения длины слов в русских текстах

      распределение английских слов - средняя длина
      Распределения длины слов в английских текстах

      В среднем на 21% русский язык «длиннее», чем английский. Источник: средняя длина английских слов

      Исходя из этого, русскоговорящему населению сложнее выразить мысль и уместить в ограничение, которое для английского языка чаще всего достаточно.
      Поэтому, бывают случаи, когда требуется увеличить длину URL в WordPress. Потому, что если не менять ограничение, то конец фразы просто обрезается. И url становится некрасивым.

      Например:
      Заголовок статьи «Как получить бесплатный SSL сертификат для кириллического домена».
      А url wordpress может порезать так совсем неудачно. как-получить-бесплатный-ssl-серти — что выглядит ужасно.
      Это плохо для SEO, да и человеку неудобно и непонятно.

      Ab ovo

  1. Автор, подскажите как увеличить длину категорий ещё, с постами понятно спасибо, а вот с категориями как быть? Что нужно править в файлах и БД ?

    1. Что имеется в виду под «длина категорий»? Требуется увеличить длину url (/ru/category-very-very-very-very-looooooong/page-1) или что имеете в виду?
      Увеличить длину рубрики? Тега (метки)?

      ardua.ru/ru/category/wordpress/ — об этом речь «wordpress», о рубрике?

      Если я правильно понимаю, то вы хотите изменить стандартную длину тегов и категорий с 40 символов в URL на какой-то свой размер?

      tag-slug ограничение в 40 символов файл: edit-tags.php
      tag-slug ограничение в 40 символов файл: edit-tags.php

      А на счет увеличения длины URL у категории WordPress — в базе данных менять ничего не нужно.
      Поле post_name — оно отвечает за url и его длину в БД WordPress.

      Cogito, ergo sum

      1. Да — «Требуется увеличить длину url», спасибо за развёрнутый ответ, на сколько я знаю категория это и есть рубрика т.е. одно и тоже, постоянные ссылки у меня настроены так «/%category%/%postname%/», postname после правок файлов и БД — начало отображаться полностью — без урезания, за что вам огромное спасибо, а вот категории (рубрики) — нет, уточню: именно «category-very-very-very-very-looooooong» — это ведь и рубрика и категория — верно? Спасибо.

        1. Попробуйте изменить значение в файле /wp-admin/edit-tags.php в строке примерно 393:

          <input name="slug" id="tag-slug" type="text" value="" size="40" />
          

          например, на такое:

          <input name="slug" id="tag-slug" type="text" value="" size="70" />
          

          Это решило вашу проблему? Если не секрет, для чего это делаете?

          Errare humanum est

  2. Рекомендация: фундаментальные изменения, затрагивающие core functionality должны паковаться в плугин, или в сниппет для functions.php

    Все эти чудесные манипуляции с core файлами будут уничтожены при следующем ручном или автоматическом апдейте WP.

    1. Кстати, да! Это верное замечание. Спасибо за дополнение к статье. Внесу примечание.

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

18 + 2 =