[wp-hackers] How to create relations between custom post types?

Michael Pretty mpretty at voceconnect.com
Sat May 29 20:41:40 UTC 2010


I've had to do a similar thing to this and start by saying, its not the 
easiest to do.

Like how Mike mentioned below, you setup both the taxonomy and the 
post_type, but turn off the rewrite rules for the taxonomy.

-For the taxonomy, give it a different capability strings so that normal 
users can't add/delete them directly.
-Use the save_post and delete_post actions to automatically add and 
delete the given term for the custom post
-Link the custom post to its term by storing the term_id in the 
post_meta of the post.  We've learned that trying to match them up via 
slug/post_name fields becomes a nightmare due to conflicts.
-Like Mike mentioned below, use the post_type's permalink to pull in the 
single-{post_type}.php and display the data from the custom post.   But 
then have a query_posts call within that page that pulls in the child 
posts based on the term set in the post's meta field.

Sorry if this isn't a clear explanation.  If you have specific 
questions, I can explain further.

Michael
@prettyboymp

On 5/29/10 12:42 PM, Mike Schinkel wrote:
> On May 29, 2010, at 2:49 AM, Edward de Leau wrote:
>    
>> would it be possible to support cases where a custom post type and a
>> custom taxonomy type carry
>> the same name? I think they do not conflict.
>>
>> (It enables creating relations between custom post types).
>>      
> Yes, I'm working on a project that will do exactly that.  I believe that will become a common design pattern now that we have custom post types.
>
> You will need, however, need to disable rewrite when you register your taxonomy by setting it to *false* like so:
>
> 	register_taxonomy('mysterybox', 'building', array(
> 		'hierarchical'    =>  true,
> 		'label'           =>  __('Mystery Boxes'),
> 		'singular_label'  =>  __('Mystery Box'),
> 		'rewrite'         =>  false,
> 		)
> 	);
>
> You will also need to develop your single-mysterybox.php such that it loads and displays your content from your applicable mysterybox and its related buildings. You comfortable with handling that part now that you understand how to resolve the URL routing issue, right?
>
> -Mike
> _______________________________________________
> wp-hackers mailing list
> wp-hackers at lists.automattic.com
> http://lists.automattic.com/mailman/listinfo/wp-hackers
>    



More information about the wp-hackers mailing list