Uneori poate fi necesar ca, pentru anumite categorii, aspectul articolului să fie într-o anumită manieră, diferită de restul. Pentru a nu fi nevoie de fiecare dată de realizat anumite formatări, se poate crea un şablon pentru aşa ceva.
În prealabil, este necesară crearea unei funcţii care, va fi introdusă, desigur, în fişierul functions.php:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
add_filter('single_template', 'fc_verif_categ_articol'); function fc_verif_categ_articol( $t ) { foreach( (array) get_the_category() as $cat ) { if ( file_exists(get_stylesheet_directory() . "/ctg-art-{$cat->cat_ID}.php") ) /* (1) */ return get_stylesheet_directory() . "/ctg-art-{$cat->cat_ID}.php"; if($cat->parent) { $cat = get_the_category_by_ID( $cat->parent ); if ( file_exists(get_stylesheet_directory() . "/ctg-art-{$cat->cat_ID}.php") ) return get_stylesheet_directory() . "/ctg-art-{$cat->cat_ID}.php"; } } return $t; } |
cat_ID – numărul categoriei | slug – dacă se foreşte permalink-ul
Ulterior se clonează fişierul single.php, dar cu numele format din prefixul redat în codul anterior (ctg-art- ) şi, dacă în cod se optează pentru cat_ID, id-ul categoriei respective (de ex. ctg-art-48.php) sau slug-ul, dacă se doreşte identificarea uşoară a numelui categoriei (de ex. ctg-art-impresii.php).
exemplificarea este pentru tema Hueman, prietenoasă în ceea ce priveşte manipularea sidebar, după cum se vede în figură.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<!--?php get_header(); ?--> <!--?php hu_get_content( 'tmpl/single-tmpl'); ?--><!-- inhibarea căii spre subfolderul cu sablonul util pentru single.php--> <!--?php while ( have_posts() ) : the_post(); ?--> <div class="container main post content entry-inner" style="float: left;"><!-- Titlu articol --> <h1 class="post-title"> </h1> <!-- Continut articol --><!--?php the_content(); ?--><!-- Date autor --><!--?php if ( ( hu_is_checked( 'author-bio' ) ) && get_the_author_meta( 'description' ) ): ?--> <div class="author-bio"> <div class="bio-avatar"> </div> <!--?php the_author_meta('display_name'); ?--><!--?php the_author_meta('description'); ?--> <div class="clear"> </div> </div> <!--?php endif; ?--><!-- Articol anterior | Articol umator --><!--?php if ( 'content' == hu_get_option( 'post-nav' ) ) { get_template_part( 'parts/post-nav' ); } ?--><!-- Articole relationate --><!--?php if ( apply_filters( 'hu_is_related_posts_enabled', '1' != hu_get_option( 'related-posts' ) ) ) { hu_get_template_part( 'parts/related-posts' ); } ?--><!-- Afiseaza comentarii --><!--?php if ( hu_is_checked('post-comments') ) { comments_template('/comments.php',true); } ?--> </div> <!--?php endwhile; ?--> <!--?php get_sidebar(); ?--> <!--?php get_footer(); ?--> |
Sursa: prelucrare după WordPress: Custom Single Templates by Category