wordpress-custom-taxonomy-archive-titles

WordPress Custom Taxonomies: Making Archives Titles Work

So, we’ve already gone over the basics WordPress Custom Taxonomies. We also know taxonomies are powerful and convenient when used correctly. This time we’re going to dive into the code that actually makes them work – specifically, being able to display what you want as the title of your custom taxonomy page as opposed to the standard “Archives” heading.

For example, we recently put together a website that had a custom post type of “Projects” and that post type had a custom taxonomy of “Status.” This gave the end user the ability to add new projects and filter them into “Current Projects” or “Completed Projects.” The only downside to this was that if you were on the “Current Projects” page, the page title still defaulted to “Archives” – just like WordPress specifies. We wanted to be able to have it automatically pull the taxonomy name without any work on their end even if they decided they wanted to add “Future Projects” taxonomy or something along those lines.

Getting Started

If you hop into your archive.php file, you will most likely see something along the lines of an h1 with a class of “page-title” and PHP code under going through elseif statements, which is how WordPress filters through all of the different types of archives to make sure they are outputting the correct heading. Usually, the code will start like it does below with if is_category, but your theme may take a different approach. The big thing here is to plug the code in after the opening if statement and it should just work from there.

Let’s take a look:


if ( is_category() ) :
  single_cat_title();

// Use this code 
elseif ( is_tax('your_custom_taxonomy_slug') ) : // 
	$term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) );
	echo $term->name;
// End of code 

// Tons of other elseif statements

else : 
  _e( 'Archives', 'wetlands' );

endif;

You can see what we added in that little “Use this code” section – short and sweet. All the PHP is saying is “if this is the taxonomy of (‘your_custom_taxonomy_slug’) then get the taxonomy name and print it.” You should be able to copy and paste that bit into the series of elseif statements, replace the ‘your_custom_taxonomy_slug’ with the slug of your taxonomy and you’ll have your taxonomy page title in no time.

Conclusion

This little bit of code made our jobs here at Southern Web much easier and is now used on a pretty regular basis to solve a variety of issues. Do you use any similar techniques? If so, please let us know in the comments.

January 9, 2014

About Jack Nycz

Jack works as a front-end developer at Southern Web Group, and his passion for staying up to date on the latest coding techniques benefits both the team and our clients. While attending Gainesville State, Jack discovered his passion for coding and successfully built his first website – he’s never looked back. Born and raised in Atlanta, Georgia where his mother and three brothers still reside, Jack is also a sports enthusiast. When not focused behind a computer screen, he spends much of his time playing football, basketball and lacrosse.

Leave a Reply

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

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>