1

I have created a custom taxonomy for my site called projects with a matching template called taxonomy-projects.php. The problem is that when I browse to http://mysite.com/projects the template is not triggered, index.php is, but when I browse to http://mysite.com/projects/someterm the template shows up just fine.

How can have my template displayed when I browse to http://mysite.com/projects?

Before you ask. Yes, I'm aware that I need to clear the rewrite rules before changes are made. I do this by saving the Permalink settings in the admin.

This is how I've created my custom taxonomy:

$args = array(
    'labels' => array(
        'name' => "Categories",
        'singular_name' => "Category",
        'search_items' => "Search Categories",
        'popular_items' => "Popular Categories",
        'all_items' => "All Categories",
        'parent_item' => "Parent Category",
        'parent_item_colon' => "Parent Category:",
        'edit_item' => "Edit Category",
        'update_item' => "Update Category",
        'add_new_item' => "Add New Category",
        'new_item_name' => "New Category Name",
    ),
    'hierarchical' => TRUE,
    'label' => 'Categories',
    'query_var' => TRUE,
    'rewrite' => array(
            'slug' => 'projects'
    ),
);

register_taxonomy('projects', 'project', $args);

UPDATE:

I've traced the output of $wp_query->get_queried_object() on each page and when I browse to a page with a term, such as http://mysite.com/projects/commercial I get the following output:

stdClass Object
(
    [term_id] => 4
    [name] => Commercial
    [slug] => commercial
    [term_group] => 0
    [term_taxonomy_id] => 8
    [taxonomy] => projects
    [description] => 
    [parent] => 0
    [count] => 1
)

However, when I browse to http://mysite.com/projects the output is nothing.

I'm failing to understand what I'm doing wrong. How can I make the taxonomy-projects.php shown when I browse to http://mysite.com/projects?

1
  • I had similar problem and was solved when I visited the permalinks settings page in wordpress admin. ( just visited the page, nothing else ! ) Commented May 8, 2014 at 8:29

3 Answers 3

1

you have to use archive-projects.php to work mysite.com/projects, that's all

1
  • Bit late but thanks! :)
    – Luke
    Commented Aug 26, 2019 at 10:15
1

Have you tried it with the permalink base in the url? It defaults to "category". http://mysite.com/category/projects The WP codex is quoted below.

'with_front' - allowing permalinks to be prepended with front base - defaults to true

You would need to set 'with_front' to false for http://mysite.com/projects to work.

Also when you have only 'projects' in your url it is hard for WP to know if it is a post, page, custom post type, taxonomy, etc.

3
  • Sorry for my delayed response. The "category/projects" suggestion doesn't work, it falls back to index.php. I've tried the 'with_front' and it doesn't make a difference set to either true or false. I'm a bit at a loss at the moment.
    – Luke
    Commented Jul 27, 2011 at 1:45
  • My other thought is that you register the taxonomy this way: register_taxonomy('projects', 'project', $args); which means you have a custom post type named "project". If you don't have, 'project' should be 'post'. Commented Jul 28, 2011 at 22:56
  • Yes. I have created a custom post type named "project". I'm still struggling to make this work. Either I'm doing something really wrong here or something in WP is fundamentally broken.
    – Luke
    Commented Aug 6, 2011 at 5:58
0

Did you flush the rewrite rules? Add this after your custom taxonomy code:

    flush_rewrite_rules();

You only need to have this run once when you make a change. Comment it out after it works.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.