I have a custom page which uses a template called “Stores” http://example.com/stores/. This page will have a list of states and/or companies as categories. For this system I have a custom post type “store” which can be assigned to a single category (either state or company),

Each store is not a specific page, but contact information which is displayed in a sort of phone-book style layout for states/companies.

The problem I have now is, how can I allow my “Stores” template accept URL requests from http://example.com/stores/california/ (without throwing 404 error)?

California in this sense is not a page, but a query. I also do not want to manually create a page for each of these categories (As it is pulled from database, and automatic). I could use ?state=california for this purpose, but I would like to learn the proper way to allow this URL within wordpress.

Is the correct way to edit htaccess file manually? Wouldn’t that be overwritten if you edit the permalink structure? How would I format the htaccess?

4 s
4

Create a Page Template

Add a new page and give it the slug stores

Add A Public Query Variable

add_filter('query_vars', 'add_state_var', 0, 1);
function add_state_var($vars){
    $vars[] = 'state';
    return $vars;
}

Add a rewrite rule

This will direct your request to your stores page.

add_rewrite_rule('^stores/([^/]*)/?','index.php?post_type=page&name=stores&state=$matches[1]','top');

Within your Template

You can access your state variable as follows:

 $state = get_query_var('state');

Flush your Permalinks

Visit Settings->Permalinks to flush your permalinks and add your rewrite rule to the stack.

Leave a Reply

Your email address will not be published. Required fields are marked *