[wp-trac] [WordPress Trac] #19572: switch_to_post() stack implementation (similar to switch_to_blog())

WordPress Trac wp-trac at lists.automattic.com
Thu Dec 15 21:54:57 UTC 2011


#19572: switch_to_post() stack implementation (similar to switch_to_blog())
-------------------------+-----------------------------
 Reporter:  alexkingorg  |      Owner:
     Type:  enhancement  |     Status:  new
 Priority:  normal       |  Milestone:  Awaiting Review
Component:  General      |    Version:  3.3
 Severity:  normal       |   Keywords:  has-patch
-------------------------+-----------------------------
 One of the challenges themes and plugins have is the balance between
 utilizing the core APIs that rely on global variables, while leaving
 things in a "clean" state for the next worker in the chain.

 For example, I might have a shortcode that pulls content from another
 post, outputs a title or some other data, then needs to restore the
 previous post environment. The attached patch provides APIs for doing just
 this - using the same stack approach that switch_to_blog() takes in a
 multi-site instance.

 To set up a post context, call: switch_to_post($post_id);

 This can be called multiple times, diving deeper into the stack. Then each
 process is responsible for restoring the $post context by calling:
 restore_post();

 This goes back to the stack, bumps out the current post and restores the
 previous post's context.

 There is some test code for demonstration here:

 https://gist.github.com/1309915

-- 
Ticket URL: <http://core.trac.wordpress.org/ticket/19572>
WordPress Trac <http://core.trac.wordpress.org/>
WordPress blogging software


More information about the wp-trac mailing list