[wp-trac] [WordPress Trac] #12779: Better support for custom post types in WP_Rewrite

WordPress Trac wp-trac at lists.automattic.com
Tue Mar 30 20:05:13 UTC 2010


#12779: Better support for custom post types in WP_Rewrite
----------------------------+-----------------------------------------------
 Reporter:  nacin           |       Owner:  ryan
     Type:  task (blessed)  |      Status:  new 
 Priority:  normal          |   Milestone:  3.0 
Component:  Rewrite Rules   |     Version:      
 Severity:  normal          |    Keywords:      
----------------------------+-----------------------------------------------
Description changed by nacin:

Old description:

> See also #12605 and [13773].
>
> We currently use bitmasks in WP_Rewrite, which we should remove and
> convert to an array of URL types that can be checked using in_array(). We
> currently do not use bitmask operations in WP_Rewrite that would make
> them preferable for use.
>
> To currently use custom post types with endpoints, a plugin would need to
> do the following, from [comment:5:ticket:12605 dd32 in #12605]:
> {{{
> define('EP_WIKI', 131072); // 2^17. 2^13 is used by core.
> register_post_type('wiki', array(
>         'label' => __('Wiki'),
>         'public' => true,
>         'supports' => array('revisions', 'editor', 'title'),
>         'permalink_epmask' => EP_WIKI,
>         'hierarchical' => true
> ));
> add_rewrite_endpoint('history', EP_WIKI);
> }}}
>
> In particular:
> > Care would need to be taken that any custom endpoints are in 2^x
> format, and not currently in use by any other plugins loaded.
>
> This would need to be backwards compatible with the existing bitmasks.
> More or less, {{{WP_Rewrite::add_endpoint()}}} would need to still take
> bitmasks and convert them to the new format.

New description:

 See also #12605 and [13773].

 We currently use bitmasks in WP_Rewrite, which we should remove and
 convert to an array of URL types that can be checked using in_array(). We
 currently do not use bitmask operations in WP_Rewrite that would make them
 preferable for use.

 To currently use custom post types with endpoints, a plugin would need to
 do the following, from [comment:5:ticket:12605 dd32 in #12605]:
 {{{
 define('EP_WIKI', 131072); // 2^17. 2^13 is used by core.
 register_post_type('wiki', array(
         'label' => __('Wiki'),
         'public' => true,
         'supports' => array('revisions', 'editor', 'title'),
         'permalink_epmask' => EP_WIKI,
         'hierarchical' => true
 ));
 add_rewrite_endpoint('history', EP_WIKI);
 }}}

 In particular:
 > Care would need to be taken that any custom endpoints are in {{{2^x}}}
 format, and not currently in use by any other plugins loaded.

 This would need to be backwards compatible with the existing bitmasks.
 More or less, {{{WP_Rewrite::add_endpoint()}}} would need to still take
 bitmasks and convert them to the new format.

--

-- 
Ticket URL: <http://core.trac.wordpress.org/ticket/12779#comment:1>
WordPress Trac <http://core.trac.wordpress.org/>
WordPress blogging software


More information about the wp-trac mailing list