Проблема
Мне нужно, чтобы Wordpress прекратил превращать подчеркивания в дефисы в своих слизняках / постоянных ссылках.
Ситуация
Перемещение старого сайта в чистую установку Wordpress. Старый сайт использует подчеркивания в своих URL. В настоящее время мы должны сохранить старые URL-адреса, включая подчеркивания (пожалуйста, не советуйте SEO здесь, спасибо).
Wordpress очищает свои слизни / постоянные ссылки. Подчеркивания превращаются в дефисы.
Я хочу иметь возможность использовать как подчеркивания, так и дефисы в моих слизняках. Я не собираюсь полностью заменять одно другим, что сводится к тому, что большинство предложений / решений, которые я нашел, сводятся к следующему.
Примеры решения, не соответствующего моим критериям:
https://wordpress.stackexchange.com/questions/78334/convert-hyphen-to-underscore-in-permalinks
Пример решения, позволяющего использовать точки, которые могут быть полезны:
https://wordpress.stackexchange.com/questions/231448/how-to-add-dot-in-post-slug
Что я пробовал
Я искал решение, но не смог найти удовлетворительное. Предположительно, очистка слагов / постоянных ссылок определяется в /wp-includes/formatting.php с использованием функции sanitize_title_with_dashes.
Я вставил здесь код, связанный с санитарной обработкой:
https://pastebin.com/jRqV8iB8
Единственная строка, которую я вижу, подчеркивает цели:
$title = preg_replace( '/[^%a-z0-9 _-]/', '', $title );
В целях тестирования я удалил подчеркивание из этой строки, заменил форматирование. php на сервере и попытался снова вставить подчеркивание в слаг. Но это ничего не сделало. Я также только что выяснил, основываясь на ссылке «разрешить точки в постоянных ссылках», упомянутой ранее, которую эта строка предположительно ПОЗВОЛЯЕТ подчеркивать в URL.
Это также соответствует содержанию комментария "* Ограничивает вывод alphanumeri c символами, подчеркиванием (_) и da sh (-)."
Итак ... этот код говорит, что подчеркивания разрешены (в слизняках / постоянных ссылках?), но они все еще удаляются в моем слаге / постоянных ссылках.
Может ли кто-нибудь увидеть здесь что-то, чего я не могу. Или предложить фильтр, который позволит использовать как подчеркивание, так и дефис в слаге / постоянной ссылке? Прямо сейчас я застрял.
Заранее благодарю за любую помощь, которую вы готовы предложить.
Решение найдено
Редактор Гутенберга принудительно переносит дефисы в кусок сообщения или страницы в это время: https://github.com/WordPress/gutenberg/issues/13091
В моем случае, Я включил плагин Classi c Editor: https://wordpress.org/plugins/classic-editor/
Я перестрою веб-сайт и старые URL с подчеркиванием таким образом. Когда я закончу, я вернусь в Гутенберг. Старые URL будут постепенно и постепенно изменяться в будущем, а новые будут использовать дефисы. Так и должно получиться.
В качестве альтернативы, как указал пользователь @admcfajn, вы можете изменить слаг страницы / поста на экране обзора страницы / поста, используя функцию быстрого редактирования. Подставки, добавленные к слагу, сохранятся даже при активном редакторе Гутенберга.
Если вы хотите навсегда заменить дефисы подчеркиванием, создайте фильтр, используя решение, представленное для этого вопроса: https://wordpress.stackexchange.com/questions/78334/convert-hyphen-to-underscore-in-permalinks
Спасибо тем, кто принял время ответа (один пользователь удалил свой ответ или его удалили). Я надеюсь, что другие найдут это решение через Google в будущем.
Надеемся, что либо Гутенберг будет исправлен, либо комментарий в форматировании. Файл php будет исправлен, чтобы избежать путаницы, если разработчики намерены разрешать пользователям использовать только дефисы.