Różne category.php w WP
Zdarza się tak, że rodzi się potrzeba zmiany wyglądu wyświetlania jednej z kategorii w naszym szablonie WordPress. Domyślnie budujemy szablon WordPress z 1 pliku category.php, w którym definiujemy w jaki sposób mają zostać wyświetlane posty z kategorii A, B, C, D, E etc. A co gdy chcemy, aby w kategorii B nasze posty były wyświetlane w całkiem inny sposób niż z pozostałych kategorii? Jest na to kilka sposobów jeden z nich postaram się Wam w klarowny sposób przedstawić.
Do tego ‘Hack’a’ będziemy potrzebowali zmodyfikować plik functions.php jeżeli go w naszym szablonie nie ma trzeba go utworzyć i wrzucić do katalogu wp-content/themes/nasz_szablon/ i do niego dodać poniższy filtr, dzięki któremu będziemy mieli możliwość budowania wielu plików category.php o różnych, indywidualnych wyglądach:
add_filter('category_template', 'category_slug_template');
function category_slug_template($template) {
$cat_ID = absint(get_query_var('cat'));
$category = get_category($cat_ID);
if (is_wp_error($category))
return false;
$new_template = locate_template(array("category-".$category->slug.'.php'));
if ($new_template)
return $new_template;
return $template;
}
Teraz, aby utworzyć indywidualny wygląd dla kategorii B należy dodać do naszego katalogu z szablonem plik o nazwie category-B.php. Jeżeli będziemy chcieli zmienić również wygląd wyświetlania dla kategorii D ponownie utworzymy nowy category lecz tym razem dodając slug -D.php czyli w rezultacie powinniśmy otrzymać category-D.php itd. Edytowana wewnątrz plików treść będzie niezależna wobec pozostałych plików category.php