✅ WEB і WordPress новини, теми, плагіни. Тут ми ділимося порадами і кращими рішеннями для сайтів.

Як видалити спеціальні символи з постійних посилань

8

Щоразу, коли ви працюєте з WordPress і сторонніми API, завжди є шанс, що ви зіткнетеся з проблемами, коли сторонній API не готовий обробляти певні символи, які існують у постійному посиланні.

Однак, залежно від налаштувань постійного посилання, це може бути чи ні. Наприклад, ви можете встановити постійні посилання на щось на зразок ?p=123 для кожної публікації. У такому випадку це не велика проблема.

Але якщо ви використовуєте «красиві постійні посилання», і ваше постійне посилання містить щось на кшталт символу торгової марки чи авторського права, це може спричинити проблеми щоразу, коли ви спілкуєтесь із зазначеним стороннім API.

По-перше, якщо ви використовуєте красиві постійні посилання, вони зазвичай створюються з заголовка публікації. Отже, якщо ви використовуєте щось на зразок All About The Acme Machine™, буде створено постійне посилання, яке містить щось подібне.

Наприклад, WordPress може автоматично генерувати щось на зразок цього: https://acme.com/all-about-the-acme®-machine/

І коли прийде час надіслати цю інформацію до стороннього API (або спробувати обробити її за допомогою чогось, що не підготовлено для таких символів), тоді ви зіткнетеся з проблемами.

На щастя, WordPress надає хук, який дозволяє нам обробляти постійні посилання до того, як вони будуть серіалізовані в базу даних. А саме, це хук wp_insert_post_data.

І в цьому випадку це працює так:

  1. Налаштуйте підключення на пізній етап процесу серіалізації,
  2. Шукайте символів, які можуть бути проблемними,
  3. Замініть їх порожнім рядком,
  4. Поверніть оновлену інформацію до WordPress для серіалізації.

Ось приклад видалення різних символів, таких як символи авторського права, символи торгових марок, символи реєстрації та інші їх варіанти як у закодованих форматах, так і в закодованих еквівалентах:

Зауважте, що функція приймає дані допису як аргумент, перевіряє, чи ви не працюєте з чернеткою, статтею, що очікує на розгляд, або автоматичною чернеткою, а потім видаляє вміст у назві допису за допомогою

Це може бути тонка проблема. Тобто, можливо, ви не зустрінете його у своїх зусиллях щодо розробки. З іншого боку, якщо ви це зробите, це надасть рішення, яке не тільки дозволить вам видалити певні символи з URL-адреси, але й дозволить вам зробити це в масштабованій.

Отже, коли ваші потреби зміняться, ви можете просто оновити виклик preg_replace символами, які потрібно видалити з вашої URL-адреси.

Джерело запису: tommcfarlin.com

Цей веб -сайт використовує файли cookie, щоб покращити ваш досвід. Ми припустимо, що з цим все гаразд, але ви можете відмовитися, якщо захочете. Прийняти Читати далі