[wp-hackers] Best practice way for a plugin to use WP_Rewrite

Tuna Can tunamaxx at yahoo.com
Fri Nov 13 03:57:30 UTC 2009


Ok... ignore what I said about not beinag able to write the changes to .htaccess via a them option form submission; that actually works. However, I stand behind the 'admin_init' versus 'init' comment still.

Does the fact that I am using 2.9-rare make a difference?

Thanks,

Tony 

--- On Thu, 11/12/09, Tuna Can <tunamaxx at yahoo.com> wrote:

> From: Tuna Can <tunamaxx at yahoo.com>
> Subject: Re: [wp-hackers] Best practice way for a plugin to use WP_Rewrite
> To: wp-hackers at lists.automattic.com
> Received: Thursday, November 12, 2009, 7:38 PM
> Honestly, I would be ecstatic to be
> proven wrong on this. Do you have any idea why using a
> plugin with only the following code (plus the required
> plugin header of course):
> 
> function my_flush_rewrites() {
>     global $wp_rewrite;
>     $wp_rewrite->flush_rules();
> }
> 
> function my_add_rewrites() {
>     global $wp_rewrite;
>     $my_new_non_wp_rules = array(
>         'this/([0-9]+)$'
> => 'that/index.php?a=$1',
>     );
>     $wp_rewrite->non_wp_rules =
> $my_new_non_wp_rules + $wp_rewrite->non_wp_rules;
> }
> 
> add_action( 'generate_rewrite_rules', 'my_add_rewrites' );
> add_action( 'admin_init', 'my_flush_rewrites' );
> 
> ...will automatically write the following in .htaccess:
> 
> RewriteRule ^this/([0-9]+)$ /that/index.php?a=$1 [QSA,L]
> 
> ...but, if I set the .htaccess back to the WP default, then
> change the 'admin_init' to just 'init' like so:
> 
> add_action( 'init', 'my_flush_rewrites' );
> 
> ...the changes aren't written to .htaccess unless I go to
> Settings / Permalinks and "Save Changes" manually?
> 
> HOWEVER, while I have had a little light at the end of the
> tunnel with this issue, my real question is whether it is
> possible to to flush_rules() via a THEME OPTIONS PAGE form
> submission. Since even discovering the 'admin_init' thing
> earlier today, I can't cause the changes to be made to
> .htaccess via my theme options page.
> 
> Any guidance would be GREATLY appreciated.
> 
> Thanks you,
> 
> Tony
> 
> 
> 
> --- On Thu, 11/12/09, Matt Jacob <matt at mattjacob.com>
> wrote:
> 
> > From: Matt Jacob <matt at mattjacob.com>
> > Subject: Re: [wp-hackers] Best practice way for a
> plugin to use WP_Rewrite
> > To: wp-hackers at lists.automattic.com
> > Received: Thursday, November 12, 2009, 4:25 PM
> > On Thu, Nov 12, 2009 at 12:23 PM,
> > Tuna Can <tunamaxx at yahoo.com>
> > wrote:
> > > A little perseverance paid off...  My whole
> issue
> > relates to trying to hook in the flush_rules() at
> 'init'
> > instead of 'admin-init' as required.
> > 
> > I don't think that's entirely true. On plugin
> activation,
> > I'm doing this:
> > 
> > add_action('init', array($this,
> 'FlushRewriteRules'));
> > 
> > Every time the plugin is loaded, I'm doing this:
> > 
> > add_filter('rewrite_rules_array', array($this,
> > 'InsertRewriteRules'));
> > 
> > Seems to work pretty well for me. Maybe you were
> running
> > into a
> > problem somewhere else?
> > 
> > Matt
> > _______________________________________________
> > wp-hackers mailing list
> > wp-hackers at lists.automattic.com
> > http://lists.automattic.com/mailman/listinfo/wp-hackers
> > 
> 
> 
>      
> __________________________________________________________________
> Be smarter than spam. See how smart SpamGuard is at giving
> junk email the boot with the All-new Yahoo! Mail. 
> Click on Options in Mail and switch to New Mail today or
> register for free at http://mail.yahoo..ca
> 
> _______________________________________________
> wp-hackers mailing list
> wp-hackers at lists.automattic.com
> http://lists.automattic.com/mailman/listinfo/wp-hackers
> 


      __________________________________________________________________
Looking for the perfect gift? Give the gift of Flickr! 

http://www.flickr.com/gift/



More information about the wp-hackers mailing list