Support » Plugins » Dealing with Permalinks and Dynamic Code

  • I have a question on permalinks.
    I added some code to my template page.php.  The code checks for a specific page ID then generates dynamic content based on two inputs (state and town).
    I also have code in .htaccess to rewrite my the URL.  I request /consultants/NH/Manchester and it will translate to index.php?page_id=100&state=NH&town=Manchester.
    If I disable permalinks, this works fine.  If I enable permalinks, the browser gets a 302 redirect to the actual permalink for page_id 100.  In this case /category/consultants-directory.
    Can someone explain which function executes the 302 redirect.  I can change it to ignore the 302 if the page_id=100.  There could be a better way to do this.  Suggestions?

Viewing 7 replies - 1 through 7 (of 7 total)
  • Did you ever resolve this, I’m trying to do something similar


    Yes, but it’s not a nice solution. I didn’t have time to figure out how the permalink functions work. Or I couldn’t figure it out after a week of late nights. I just needed this for one page ID. I changed it in wp-includes/canonical.php. I added one line to ignore the function for my page ID. A better way is to use a custom field if you have multiple pages you want this for:

    if ( $do_redirect ) {
    		//CHR this line will exclude permalink translation for a single page
                      //Use it to call a page with dynamic page generation code
    	    if ( get_query_var('page_id') == "1137" ) return false;
    		// CHR end modification for 31 directory
    		// protect against chained redirects
    		if ( !redirect_canonical($redirect_url, false) ) {
    			wp_redirect($redirect_url, 301);
    		} else {
    			// Debug
    			// die("1: $redirect_url<br />2: " . redirect_canonical( $redirect_url, false ) );
    			return false;
    	} else {
    		return $redirect_url;

    Remember to make a backup copy after the change. The next WordPress upgrade will overwrite this.

    Thank you for the reply. Unfortunately I couldn’t do it your way ao after further investigation (ycrta asking on the forum again) my prayers were answered

    points me to

    What this means is I can have

    convert to

    So I only need to write 1 page (your-town-is) and use some shortcode to GET the town variable and replace [town] with the variable

    Perfect solution for me.

    Did you figure this out? It will be very helpful if you explain how you did it. I have a similar setup that translate /statelist to index.php?page_id=1137&input1=statelist in my .htaccess file. I then have dynamic code in my template page.php that generates the content.

    How do I get rid of the original permalink for page_id=1137?


    I did it by creating a new function in functions.php and editing the .htaccess file

    for the sake of this lets say that the permalink for your page_id 1137 is STATELIST and input1 is OHIO

    The user would click on a link

    This goes in functions.php and converts the link into something wordpress can use.

    // Remember to flush_rules() when adding rules
    function flushRules(){
    	global $wp_rewrite;
    // Adding a new rule
    function wp_insertMyRewriteRules($rules)
    	$newrules = array();
    	$newrules['(statelist-)(.+?)$'] = 'index.php?pagename=$matches[1]&input1=$matches[2]';
    	return $newrules + $rules;
    // Adding the id var so that WP recognizes it
    function wp_insertMyRewriteQueryVars($vars)
        array_push($vars, 'id');
        return $vars;

    and my .htaccess looks like this

    <IfModule mod_rewrite.c>
    	Options +FollowSymlinks
    	RewriteEngine On
    	RewriteOptions MaxRedirects=10
    	RewriteBase /SUBFOLDER/
    	RewriteRule ^statelist-([^/\.]+)/?$ /SUBFOLDER/index.php?pagename=windows-in&town=$1 [QSA,L]
    #	RewriteRule ^index\.php$ - [L]
    	RewriteCond %{REQUEST_FILENAME} !-f
    	RewriteCond %{REQUEST_FILENAME} !-d
    	RewriteRule . /SUBFOLDER/index.php [L]

    obviously replace SUBFOLDER as necessary for your setup

    Now just GET input1 as necessary.

    Great thanks! This worked for me.

    just wanted to say Thanks for this – it totally works, just what i was looking for, and is are very slick solution

Viewing 7 replies - 1 through 7 (of 7 total)
  • The topic ‘Dealing with Permalinks and Dynamic Code’ is closed to new replies.