Wordpress URL'sinin otomatik tamamlanmasını devre dışı bırak


15

Son zamanlarda Wordpress'in bir URL'nin tamamı gönderilmediğinde otomatik olarak tamamlamaya çalıştığını fark ettim. Örneğin, şöyle bir yazı URL'si var:

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

Aşağıdaki URL'ye göz atarsam:

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

URL'nin Wordpress'e gönderildiğini, ancak Wordpress'in 301 yönlendirmesini yaptığını görebiliyorum http://www.mysite.com/some-post-title.

Bu davranışı nasıl devre dışı bırakabilirim?


Tüm kanonik URL sistemini devre dışı bırakmayan, ancak yalnızca otomatik tamamlama "tahmin" bölümünü devre dışı bırakan test edilmiş bir çözüm burada
Hauke ​​P.

Yanıtlar:


19

redirect_canonicalKancalı fonksiyon olduğuna inanıyorum template_redirect. Şunlarla devre dışı bırakabilmeniz gerekir:

remove_filter('template_redirect', 'redirect_canonical'); 

Ancak, oldukça karmaşık olduğu ve bazı önemli SEO işlevlerini gerçekleştirdiği için bunu yapmak isteyip istemediğinizi düşünmelisiniz:

Gelen bağlantıları site URL'sine göre uygun URL'ye yönlendirir.

Arama motorları, www.somedomain.com ve somedomain.com adreslerinin her ikisi de aynı konuma gittiklerinde iki farklı URL olduğunu düşünmektedir. Bu SEO geliştirme, gelen tüm bağlantıları birine veya diğerine yönlendirerek yinelenen içerik cezasını önler.

Özet akışları, geri izlemeler, aramalar, yorum açılır pencereleri ve yönetici URL'leri için yeniden yönlendirmeyi önler. Oldukça permalink desteklemeyen IIS 7, sayfa / yayın önizlemeleri, WP yöneticisi, Geri İzlemeler, robots.txt, aramalar veya POST isteklerine yönlendirme yapmaz.

Ayrıca, bir kullanıcı tam olarak WordPress sorgusuna dayanarak var olmayan bir URL girdiğinde doğru bağlantıyı bulmaya çalışır. Bunun yerine, gidilecek doğru sayfayı anlamaya çalışmak için URL'yi veya sorguyu ayrıştırmaya çalışır.

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

Aşağıdaki olabilir SEO bileşeni ile karışıklık olmadan otomatik tamamlama öldürmek ama bunun için söz veremem. Bunu asla devre dışı bırakmak istemediğim için kod zorlukla test edildi. Gerçekten bir redirect_canonicalşeyden emin olmak için çalışmam gerekecekti.

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);

Bu kod snippet'ini /wp-includes/canonical.php dosyamın sonuna ekledim ve yönlendirmeler hala devam ediyor. Yanlış bir şey mi yapıyorum? Başka kimse bu davranışı devre dışı bırakamıyor mu?
user1380540

4

Bu "tahmin" in otomatik olarak gerçekleşmesi korkunç bir sorumsuzluk gibi görünüyor. Gitmek için doğru sayfa olan bazı tanımlama araçları olsaydı buna çok daha açık olurdum.

Bir dizi olarak inşa çok sayıda sayfa var ve bu otomatik tahmin yanlış başlangıç ​​sayfasının aksine, (rastgele?) Sırayla bir yerde olan sayfaları ile cevap seçiyor.

GÜNCELLEME: Bu bilinen davranıştır ve burada dikkate alınmaktadır: https://core.trac.wordpress.org/ticket/16557


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.