Как заставить WordPress не удалять метки Если в…

Как заставить WordPress не удалять метки?
Если в качестве меток для записи использовать русский вариант и вариант на транслите (например, «вконтакте» и «vkontakte»), то при публикации одна из меток удаляется. Можно ли заставить движок не удалять такие метки (или даже вообще не удалять дубли-метки, дубли я сам могу контролировать)?

zdezbilya
Оцените автора
Добавить комментарий

  1. Simple Tags
    Но я бы рекомендовал не плодить дубли и использовать Cyr2Lat.

    Ответить
  2. zdezbilya автор

    Спасибо. А без плагина никак? Ставить многофункциональный плагин ради удаления одной функции не хочется

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

    Ответить
    1. Sergey Biryukov

      Если не установлен плагин транслитерации, то метки не удаляются, поскольку сам WordPress не делает транслитерацию и не считает их одинаковыми.

      Теоретически можно транслитерировать только ярлыки записей, но не меток — вероятно, это то, что вы хотите? У вас установлен RusToLat?

      Ответить
      1. zdezbilya автор

        Да, всё верно, стоит RusToLat. Значит для неудаления меток придется его отключить?

        Ответить
        1. Sergey Biryukov

          Это самый простой вариант.

          А чтобы транслитерировать только ярлыки записей, можно добавить фрагмент в functions.php активной темы:

          remove_action('sanitize_title', 'sanitize_title_with_translit', 0);
          
          function rtl_save_post_title($title) {
          	$GLOBALS['post_title'] = $title;
          	return $title;
          }
          add_filter('pre_post_title', 'rtl_save_post_title');
          
          function rtl_sanitize_post_name($post_name) {
          	return sanitize_title_with_translit($GLOBALS['post_title']);
          }
          add_filter('pre_post_name', 'rtl_sanitize_post_name');
          
          Ответить