web-dev-qa-db-fra.com

Comment remplacer le mécanisme de rendu par catégorie

Actuellement, pour chaque catégorie, il existe un modèle séparé ( category-1.php, category-2.php , etc.), dans mon cas, plus d'une centaine d'entre eux. Je veux le refactoriser à 4, donc par exemple si $ cat est dans la plage 1..20, restituez "first_category.php", si dans la plage 21..50, restituez "second_category.php" et ainsi de suite.

Merci!

2
spacemonkey

si vous pouvez utiliser template_redirect hook et une fonction simple pour définir le modèle à utiliser

add_action( 'template_redirect', 'category_set_redirect' );
function category_set_redirect(){
    //create the sets of categories
    $first_set= array("1","2","3","4","5","6");
    $second_set= array("7","8","9","10","11","12");

    if (is_category()){
        if (in_array(get_query_var('cat'),$first_set)){
            include(TEMPLATEPATH . "/first_category.php"); // include the corresponding template
            die();
        }
        if (in_array(get_query_var('cat'),$second_set)){
            include(TEMPLATEPATH . "/second_category.php"); // include the corresponding template
            die();
        }   
    }
}
3
Bainternet