eklentisi içinde alt sayfaları wordpress url çözünürlüğü

3 Cevap php

Http:/www.blah.com/foo o kadar getiriyor ben wordpress böyle bir sayfa "foo" söylüyorlar.

Bu sayfa gibi onun içeriğinde bir tetikleyici olduğunu söylüyorlar <- foo -> add_filter ('the_content', ..) filtre aracılığıyla benim eklenti tarafından izleniyor hangi. Yani, http:www.blah.com/foo ve http://www.blah.com/foo?var=bar eklenti tarafından yakalandı ve ele alınan tüm çağrılar.

Now is there a way by which the plugin could let wordpress know that it wants to handle all urls of the type http://www.blah.com/foo/bar http://www.blah.com/foo/bar/morefoo etc.. "without" having to create pages/subpages for each of these as these urls would be created dynamically?

Ayrıca, bir ideal url http://www.blah.com/foo eklenti tarafından işlenir böylece tüm aramaları anahtarlı bir eklenti içinde kontrol yakalayabilir ki bir sayfa içinde the_content üzerinde add_content filtre kullanarak yanı sıra yine de var.

3 Cevap

Kendi q cevaplama:

Yukarıdaki cevaplar göstericiler yararlı ve bana doğru yolda gidiş var ama söz url çağrıldığı zaman ben index.php deyip duran bir engele isabet etti.

I then came across http://mikeschinkel.com/blog/restful-web-services-in-wordpress-plugin/ where he goes into an explanation and provides an answer that requires a template_redirect action to ensure that control is where you want it.

Evet, (sorgular aka) URL başvuruları kapmak ve alt sayfalar yaratmadan, onları ayrıştırmak.

Olaylar dizisi Query Overview page 'de tarif edilmektedir. Burada özellikle parse_request eyleme çengel bakmak istiyorum.

Ben özel bir mod_rewrite kuralı kullanarak tanımlamak ne çok benzer bir şey yapmak. Sizin örnekte ardından, şablon foo.php kullanan bir sayfa Foo var. Foo.php şablon URL kalan tanımlayan bir sorgu değişkeni, diyelim ki "yol", kabul eder. . Benim htaccess dosyasında, ben (! O outside WordPress otomatik olarak oluşturulan kurallar koymak için dikkatli olun) aşağıdaki kural var:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^foo/(.+) /foo/?path=$1 [L] 
</IfModule>

Sizin eklenti aynı zamanda beklenmedik URL'leri kaçak avlanmak "redirect_canonical" eklentisi, devre dışı bırakmanız gerekebilir.

remove_action('template_redirect', 'redirect_canonical');

Ben de template_redirect kanca ve WP_Rewrite sınıfını kullanarak benzer bir şey yapmak mümkün olabilir düşünüyorum, ama ben kendim denemedim.