Добавление транслита в плагин Table of Contents Plus для WordPress

WordPress. Добавление транслита для плагина Table of Contents Plus

Опубликовано: 28.06.21 | Обновлено: 28.06.21

Многие вебмастера пользуются плагином Table of Contents Plus для автоматического вывода блока с содержанием статей. Однако, у него есть один недостаток: он не умеет транслитерировать кириллицу в латиницу и потому не может генерировать корректные якорные ссылки на элементы оглавления.

Добавление транслита в плагин Table of Contents Plus для WordPress
При формировании якорной ссылки русские символы в заголовке пропускаются

Публикую короткую инструкцию по доработке Table of Contents Plus для поддержки транслитерации.

Перед добавлением транслитерации обновите плагин до последней актуальной версии.

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

Затем откройте файл:

  • /wp-content/plugins/table-of-contents-plus/class-toc-plus.php, если вы пользуетесь актуальной версией плагина
  • /wp-content/plugins/table-of-contents-plus/toc.php, если вы пользуетесь версией плагина до 2xxx и по каким-то причинам не хотите обновляться

И найдите в нем строку:

$return = str_replace( ‘&’, ”, $return );

Сразу после этой строки вставьте следующий код:

// начало транслитерации

			$tr = array(
				"ай"=>"ay","ей"=>"ey","ий"=>"iy","ой"=>"oy","уй"=>"uy",
				"ый"=>"yy","эй"=>"ey","юй"=>"yuy","ей"=>"yay",
				
				"Ґ"=>"G","Ё"=>"YO","Є"=>"E","Ї"=>"YI","І"=>"I",
				"і"=>"i","ґ"=>"g","ё"=>"yo","№"=>"","є"=>"e",
				"ї"=>"yi","А"=>"A","Б"=>"B","В"=>"V","Г"=>"G",
				"Д"=>"D","Е"=>"E","Ж"=>"ZH","З"=>"Z","И"=>"I",
				"Й"=>"Y","К"=>"K","Л"=>"L","М"=>"M","Н"=>"N",
				"О"=>"O","П"=>"P","Р"=>"R","С"=>"S","Т"=>"T",
				"У"=>"U","Ф"=>"F","Х"=>"H","Ц"=>"TS","Ч"=>"CH",
				"Ш"=>"SH","Щ"=>"SHCH","Ъ"=>"","Ы"=>"Y","Ь"=>"",
				"Э"=>"E","Ю"=>"YU","Я"=>"YA",
				
				"а"=>"a","б"=>"b",
				"в"=>"v","г"=>"g","д"=>"d","е"=>"e","ж"=>"zh",
				"з"=>"z","и"=>"i","й"=>"y","к"=>"k","л"=>"l",
				"м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",
				"с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"h",
				"ц"=>"ts","ч"=>"ch","ш"=>"sh","щ"=>"shch","ъ"=>"",
				"ы"=>"y","ь"=>"","э"=>"e","ю"=>"yu","я"=>"ya",
				
				"  "=>"-"," "=>"-","?"=>"","№"=>"-"," "=>"-",","=>"","."=>"","&"=>"","amp"=>"",
				"quot"=>"",";"=>"",";"=>"","+"=>"","="=>"","*"=>"","#"=>"",
				"/"=>"","”"=>"","“"=>"",")"=>"","("=>"","$"=>"","%"=>"",
				":"=>"","!"=>"",">"=>"","<"=>"","«"=>"","»"=>"","\""=>"",
				"'"=>"","`"=>"","\\"=>"","–"=>"-","—"=>"-","--"=>"-","---"=>"-","…"=>"" ,"…"=>"", "’"=>""
			);

			$return = strtr(trim($return), $tr);

// конец транслитерации

Сохраните изменения. На этом все готово, и Table of Contents Plus будет генерировать корректные якорные ссылки, транслитерированные с кириллицы.

На всякий случай прикладываю код для вставки в виде текстового файла.

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

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