Просто назовите ваш шаблон category-X.php, где X - это конкретное имя категории или идентификатор, для которого вы хотите создать собственный шаблон, и поместите его в / единственную папку в директории вашей главной темы. Теперь каждый раз, когда вызывается один пост, и он соответствует существующему шаблону в этой папке, он будет использовать его для отображения поста вместо обычного single.php. Если совпадений не найдено, используется single.php.
в functions.php:
define(SINGLE_PATH, TEMPLATEPATH . '/single');
add_filter('single_template', 'force_cat2single_template');
function force_cat2single_template($single) {
global $wp_query, $post;
foreach((array)get_the_category() as $cat) :
if(file_exists(SINGLE_PATH . '/single-cat-' . $cat->slug . '.php'))
return SINGLE_PATH . '/single-cat-' . $cat->slug . '.php';
elseif(file_exists(SINGLE_PATH . '/single-cat-' . $cat->term_id . '.php'))
return SINGLE_PATH . '/single-cat-' . $cat->term_id . '.php';
endforeach;
if(file_exists(SINGLE_PATH . '/single.php'))
return SINGLE_PATH . '/single.php';
elseif(file_exists(SINGLE_PATH . '/default.php'))
return SINGLE_PATH . '/default.php';
return $single;
}