I want to pull up a custom post type called Schedule
whether the permalink uses the post slug OR a value stored in the post’s meta values.
E.g. /schedule/jims-schedule/
and /schedule/67sGHGj54hjs/
need to pull up the same post.
A little more info so you understand why I’m doing this:
- The reason for the funky meta value “id” and corresponding permalink is that it’s the link you can use to share with whoever you want so they can pull up your schedule, so I don’t want to just use slugs because they could be easy to guess.
- using the default permalink with post slug needs to be something that only the signed-in post author can use to view the Schedule. They’ll have options to modify and manage the schedule on the front-end.
I found some good information here http://codex.wordpress.org/Plugin_API/Filter_Reference/request
I added a filter to the
request
hook like so:add_filter( 'request', 'alter_the_query' );
The hook function goes like this:
My hook function runs the request with a locally scoped WP_Query object and if no schedules were returned, it tries the meta query. If the meta query succeeds, it makes the necessary modifications to the
$request
array and then lets WordPress continue to process. If the meta query fails, it just returns the $request unmodified for normal processing once again.I’m not sure how this will play out with permissions on the schedule, but that’s a different ball of wax.