Вимкнути автоматичне завершення URL-адреси Wordpress


15

Нещодавно я помітив, що Wordpress намагається автоматично заповнити URL-адресу, коли вона не представлена ​​в повному обсязі. Наприклад, у мене є URL публікації, який виглядає приблизно так:

http://www.mysite.com/some-post-title

Якщо я перейду до наступної URL-адреси:

http://www.mysite.com/some-post-ti

Я можу бачити, що URL надсилається до Wordpress, але Wordpress робить переадресацію 301 на http://www.mysite.com/some-post-title.

Як я можу відключити цю поведінку?


Випробуваний розчин , яка не відключає всю канонічну систему URL , але тільки відключає автозаповнення «угадайку» частина викладена тут
Хок Р.

Відповіді:


19

Я вважаю, що саме ця redirect_canonicalфункція прив'язана template_redirect. Ви можете вимкнути це за допомогою:

remove_filter('template_redirect', 'redirect_canonical'); 

Але вам слід подумати над тим, чи хочете ви це робити, оскільки це досить складно і виконує деякі важливі функції SEO:

Переспрямовує вхідні посилання на належну URL-адресу на основі URL-адреси сайту.

Пошукові системи вважають, що www.somedomain.com та somedomain.com є двома різними URL-адресами, коли вони обидва переходять в одне місце. Це удосконалення SEO запобігає штрафу за дубльований вміст шляхом перенаправлення всіх вхідних посилань на те чи інше.

Запобігає перенаправлення на канали, відстеження, пошук, спливаючі коментарі та URL-адреси адміністратора. Не переспрямовується на IIS 7, що не підтримує досить постійну посилання, попередній перегляд сторінки / публікації, адміністратор WP, трекбек, robots.txt, пошук або на POST-запити.

Також спробує знайти правильне посилання, коли користувач введе URL-адресу, яка не існує на основі точного запиту WordPress. Натомість спробуємо проаналізувати URL-адресу чи запит, намагаючись визначити правильну сторінку, на яку потрібно перейти.

http://core.trac.wordpress.org/browser/tags/3.5.1/wp-includes/canonical.php#L13

Наступне може вбити автозавершення, не возившись із компонентом SEO, але я не можу цього обіцяти. Код ледве перевіряється, оскільки я ніколи не хотів цього відключати. Мені б справді довелося вчитися, redirect_canonicalщоб бути впевненим у чомусь.

function kill_404_redirect_wpse_92103() {
  if (is_404()) {
   add_action('redirect_canonical','__return_false');
  }
}
add_action('template_redirect','kill_404_redirect_wpse_92103',1);

Я додав цей фрагмент коду до кінця файлу /wp-includes/canonical.php, і переадресації все ще відбуваються. Я щось роблю не так? Хтось ще не може відключити цю поведінку?
користувач1380540

4

Це здається жахливо безвідповідальним, щоб це "здогадування" відбувалося автоматично. Я був би набагато відкритіший до нього, якби були якісь засоби визначення того, на якій правильній сторінці слід перейти.

У мене є чимало сторінок, які будуються як послідовність, і це автоматичне відгадування неправильно вирішує відповідати сторінками, які (випадковим чином?) Десь у послідовності, на відміну від початкової сторінки.

ОНОВЛЕННЯ: Ця поведінка відома і розглядається тут: https://core.trac.wordpress.org/ticket/16557


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.