How to display all product categories on product page?

Today i want to show you how to display on each product page links to all categories for which product belongs. This is great for increasing SEO value of the product page. I want to achieve this via the easiest  available solution. It means, that I will only modify the product.tpl theme file. No core modifications = no worries ;)

 

Categories link on each product page in prestashop

Okay, so what I want to achieve? Something like i show below:

product categories link on the product page in prestashop

 

When you click on any link highlighted above - you will be redirected to the category page. This is great for SEO because google robots will crawl category pages, additional thing is fact - that categories there will be treated as tags. Your position in google search results will increase quickly.

 

Edit the product.tpl file located in your theme directory

As the topic above says - open the product.tpl file located in your theme directory. You've got there product page layout writed in smarty language.

 

 

All you have to do is to put categories foreach code right after this:

{include file="$tpl_dir./breadcrumb.tpl"}
<div id="primary_block" class="clearfix">

 

categories foreach code looks like:

<ul class="productcats">
 {foreach from=Product::getProductCategoriesFull(Tools::getValue('id_product')) item=cat}
    <li><a href="{$link->getCategoryLink({$cat.id_category})}" title="{$cat.name}">{$cat.name}</a></li>
{/foreach}
</ul>

<ul> is a list definiton. <li> defines an element of <ul> list. Foreach is a loop which is necessary to display all categories. Product::getProductCategoriesFull returns categories name and id from database. Tools::getValue('id_product') this is a product id definition. this is really simple code, don't you think?

 

CSS styles for categories list

You can also define own styles for categories list. It's easy to achieve. Just add to the global.css file code:

.productcats {
	list-style:none;
    position:relative;
    clear:both;
    display:block;
    padding-bottom:20px;
    margin-bottom:20px;
}

.productcats li, .productcats a{
	float:left;
	height:24px;
	line-height:24px;
	position:relative;
	font-size:11px;
	}
 
.productcats a {
    padding:5px;
}

You can define own background color, borders, paddings etc. It mean that you can create own design of categories buttons! That's all. If you've got any questions related to this thread - feel free to continue discussion in the comments below.

 

author milos myszczuk
Article by Milosz Myszczuk PrestaShop expert, official PrestaShop community moderator. PHP developer, specialist in relative and spatial databases management, GIS Analyst, CEO & founder of VEKIA interactive agency. Read more about VEKIA company
If you like my articles and want much more valuable tips, feel free to send me donation
1.4 version 1.4.11 1.6 404 addon admin advertise ahref ajax alpha animation api app application authentication back office backup badge banner basics block bootstrap button cache carrier cart catalog category certificate changelog chat class clear client clip cms code colors columns comments configuration contact container content controller cookie counter country coupon css csv currency customer dashboard database debug default delete delivery desktop developer device disable discount displayNav displayTop download dynamic editor effect empty encrypt engine error exchange exclude export facebook faceshop fade fancoupon fancybox fanpage fatal feature feed field file fix fixed font footer free friendly url front ftp full gallery generate gift global godaddy google google+ gray grid groupon header help hide highlight homefeatured homepage hook hosting hover howto htaccess html html5 ID image import include input instagram installation integration iPhone issue javascript jquery kgb knowhow languages law left likebox link list livingsocial loading log login logo loyality mail mailing maintenance manufacturer marketing marquee mcrypt menu meta mobile modification module movie moving multilanguage multiupload must have mysql news newsletter notification number open graph order override page password performance PHP phpmyadmin picture pinterest plugin popup post prestashop prestashop 1.0 prestashop 1.1 prestashop 1.2 prestashop 1.3 prestashop 1.4 prestashop 1.5 price rules problem product profile promotion proslider purifier quantity query quick tip random rates register reinsurance release reporting reset responsive restore results ribbon rich text right sales search security seo service shadow share shipping shop shopmania slider smarty social networks SQL SSL statistics stock store style subcategory superuser support switcher tab tablet tag tax template text theme tinyMCE tips and tricks tpl tracking translations tree trends trigger tumblr tutorial twitter update upgrade upload variables video visits voucher vulnerability web2print wide widget width window wishlist wysiwyg youtube zip zopim