[wp-hackers] Post/Page "Types"?
wordpress at dd32.id.au
Sat Nov 1 12:36:26 GMT 2008
On Sat, 01 Nov 2008 23:27:40 +1100, Mike Schinkel <mikeschinkel at gmail.com>
>>> There'll be a couple of hooks you can use to direct it to a different
> template than what it's trying to load, so no core mods should be
> Specifically? (thanks in advance. :)
Err... Not sure! :) It would depend on how you integrated the post_type in
with the rest of the code. It'd probably be possible to redirect it to use
the page template rather than something else.. *really* not sure on that
>>> adding a rewrite rule for '/company/([^/]+)/?' =>
> 'index.php?post_type=company&post_name=$match' would probably achieve
> Allthough i'm not too sure if the post_type can go via the URL.. So you
> might need to register it as 'index.php?company=$match' and then hook
> on one of the post_queries hooks to modify it.
> I'd really rather handle it in PHP instead of a .htaccess file given that
> the latter can sometimes be difficult to get right; isn't there a place
> the PHP code where I can pregmatch() for '#/company/([^/]+)/?#' set
Yeah, I was refering to using the WordPress Rewrite engine rather than
handling it with a htaccess
This old example plugin of mine:
shows how to use it for some custom rules.
>>> http://trac.wordpress.org/browser/trunk/wp-includes/query.php#L2067 is
> the only place i know that's a PITA, Due to the way that branch is setup,
> You cant use ?p=123 where 123 is a custom-type as it sets it to post in
> end, Same goes for a few other query params.. I remember there was a way
> around it, but cant remember it.
> Ugh. Is there are reason it is architected this way, or is it just
> nobody has ever had a use-case that called this structure into question?
Well.. It makes sense in the way that WordPress is coded, If its a post,
then it makes sense to limit it to that particular post_type.. But if a
custom post_type has been given, that should logically over-ride that
check.. but it doesnt. (I never got around to filing a trac ticket as i
implemented what i wanted in a completely different way)
More information about the wp-hackers