Как увеличить длину URL в WordPress

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

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

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

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

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

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

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

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

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

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

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

Плагин для WordPress, чтобы увеличить длину url

Вот ссылка на обсуждение этой темы: //core.trac.wordpress.org/ticket/10483

Longer Permalinks

И в самом ее конце, предлагается плагин, который увеличивает стандартную длину URL в вордпрес: //wordpress.org/plugins/longer-permalinks/

 Файлы 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
Лого публикатора

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

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

три × 2 =

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 не будет опубликован. Обязательные поля помечены *

семнадцать − шесть =