Zobrazení subkategorií v kategoriích

Úvodní stránka Fórum podpory WordPressu Šablony, CSS (zobrazení webu) Zobrazení subkategorií v kategoriích

Zvolené téma obsahuje celkem 8 odpovědí. Do diskuze (2 účastníci) se naposledy zapojil uživatel  Mike1 a poslední změna je stará 8 let, 12 měsíců.

Aktuálně je na stránce zobrazeno 9 příspěvků - 1. až 9. (z celkem 9)
  • Autor
    Příspěvky
  • #22925

    Mike1
    Participant

    Ahoj,
    je toho sice celý web, prohledal jsem google a našel jsem různé kódy, které by měly fungovat. Bohužel nikde není napsané, kde se ten kód má umístit, popřípadě je napsané, že kód lze umístit kdekoliv. Snažím se asi 1,5 hodiny o funkčnost a bohužel už nevím jak dál. Můj web je . Jedná se mi o to, aby vždy byly v kategoriích zobrazeny podkategorie. (nejlépe i s obrázky, nejenom prostý text) Zatím jsem ve stádiu návrhu, jelikož mám funkční stránku založenou na PHP Fusion a chci přejít na wordpress, je k dispozici jen omezené množství článků. Vycházejme tedy z kategorie “Pokémoni”. Zde bych chtěl zobrazit články a rubriky, které přímo spadají pod tuto kategorii. Pokud by existoval nějaký plugin, nebo opravdu stačí ten kód zkopírovat do nějakého souboru, udělám to, ale musím se dozvědět, do kterého. :-D

    Děkuji Vám za odpovědi,
    Mike1

    #23038

    sjiamnocna
    Participant
    Web

    Dobrý den, potřeboval jsem výpis příspěvků podle podkategorií – výsledek je zde:

    <?php
                         
    //získá podkategorie kategorie obsah               $catids=array_reverse(get_child_cats('obsah','term_id',array(2,8)));
                                        
    //vyloučí kategorie, podle ID
    $maincategs=array_diff(array(7,16,6,5),$catids);
                                        $childcategs=array_merge($maincategs,$catids);
                                        
                                        foreach($childcategs as $cat){
                                            echo'<div class="category cat-'.$cat.'">';
                                            echo '<h3 class="cattitle">'.get_cat_name($cat).'</h3>';
                                            echo '<h5 class="catdesc">'.category_description($cat).'</h5>';
                                            
                                            $query[$cat] = new WP_Query(array('cat'=>$cat,'order'=>'asc'));
                                            
                                    echo'<ul class="category-'.$cat.'">';
                                    while ( $query[$cat]->have_posts() ) {
                                            $query[$cat]->the_post();
                                            echo '<li><a href="'.get_the_permalink().'" title="Číst více">' . get_the_title() . '</a></li>';
                                    }
                                    echo'</ul>';
                                    echo'</div>';
                                    wp_reset_postdata();
                                            
                                        }
                                    }else{
                                        $idObj = get_category_by_slug('obsah');
                                        $uri=get_category_link($idObj->term_id);
                                        
    //přesměrování na hromadný výpis namísto jednotlivých podkategorií
    //toto jen pro moje účely, můžete celý else vymazat
                                        header("Location: $uri");
                                    }
    ?>

    Toto přidejte do souboru archive.php

    #23040

    Mike1
    Participant

    Dobrý den,
    děkuji za odpověď. Zkusil jsem to dát do souboru archive.php, ale nějak mi to nefunguje. když kliknu tady: kategorie pokémoni, zobrazí se opět všechny články a bohužel né podkategorie. Kód archive.php je teď následovný:

    <?php get_header(); ?>
    
    <?php // Get Theme Options from Database
    	$theme_options = dynamicnews_theme_options();
    ?>
    
    	<div id="wrap" class="container clearfix">
    		
    		<section id="content" class="primary" role="main">
    
    		<h2 id="date-title" class="archive-title">
    			<?php // Display Archive Title
    			if ( is_date() ) :
    				printf( __( 'Archiv článků: %s', 'dynamicnewslite' ), '<span>' . get_the_date( _x( 'F Y', 'date format of monthly archives', 'dynamicnewslite' ) ) . '</span>' );
    			else :
    				_e( 'Archiv', 'dynamicnewslite' );
    			endif;
    			?>
    		</h2>
    		
    		<?php if (have_posts()) : while (have_posts()) : the_post();
    		
    			get_template_part( 'content', $theme_options['posts_length'] );
    		
    			endwhile;
    			
    		dynamicnews_display_pagination();
    
    		endif; ?>
    			
    		</section>
    		
    		<?php get_sidebar(); ?>
    	</div>
    	
    <?php get_footer(); ?>	
    
    <?php
                         
    //získá podkategorie kategorie obsah               
    $catids=array_reverse(get_child_cats('obsah','term_id',array(2,8)));
                                        
    //vyloučí kategorie, podle ID
    $maincategs=array_diff(array(7,16,6,5),$catids);
                                        $childcategs=array_merge($maincategs,$catids);
                                        
                                        foreach($childcategs as $cat){
                                            echo'<div class="category cat-'.$cat.'">';
                                            echo '<h3 class="cattitle">'.get_cat_name($cat).'</h3>';
                                            echo '<h5 class="catdesc">'.category_description($cat).'</h5>';
                                            
                                            $query[$cat] = new WP_Query(array('cat'=>$cat,'order'=>'asc'));
                                            
                                    echo'<ul class="category-'.$cat.'">';
                                    while ( $query[$cat]->have_posts() ) {
                                            $query[$cat]->the_post();
                                            echo '<li><a href="'.get_the_permalink().'" title="Číst více">' . get_the_title() . '</a></li>';
                                    }
                                    echo'</ul>';
                                    echo'</div>';
                                    wp_reset_postdata();
                                            
                                        }
                                    }else{
                                        $idObj = get_category_by_slug('obsah');
                                        $uri=get_category_link($idObj->term_id);
                                        
    //přesměrování na hromadný výpis namísto jednotlivých podkategorií
    //toto jen pro moje účely, můžete celý else vymazat
                                        header("Location: $uri");
                                    }
    ?>
    #23045

    sjiamnocna
    Participant
    Web

    1. Za funkcí get_footer() se nic nedává – vše za ní je většinou skryto, protože se bude vyskytovat mimo stránku

    2. Nemůžete zkopírovat vše, je potřeba některé věci poupravit

    Vy chcete mít obrázky kategorií, nebo výpis článků z každé kategorie (možná jsem to špatně pochopil) ?

    #23047

    Mike1
    Participant

    Já bych chtěl, aby se mi v kategoriích zobrazovaly podkategorie a články, které pod danou kategorii přímo spadají. Jedná se tedy o to, že v sekci Pokémoni jsou podkategorie Pokémoní podstaty, Strava (ovoce), Pokémoní útoky. Toto jsou podkategorie. V sekci (kategorii) Pokémoni “nechci” zobrazit články těchto třech podkategorií. (tzn. např. u podkategorie pokémonní podstaty nechci v kategorii Pokémoni zobrazit ohnivý typ, elektrický typ,…; to chci zobrazit pouze u kategorie Pokémoní podstaty). Existují však články, které přímo spadají do kategorie Pokémoni, ty bych chtěl zobrazit také, a také pouze jenom v této kategorii. Další věcí jsou pak obrázky, chtěl bych mít možnost, když už se budou zobrazovat v kategoriích podkategorie, mít u každé podkategorie nějaký popis a také obrázkový náhled. (jako je to u klasických článků)

    #23048

    sjiamnocna
    Participant
    Web

    Nainstalujte si plugin Categories images

    Potom zrušte všechno, co jste zkopíroval, a zkopírujte si tam toto:

        <?php get_header(); ?>
    
        <?php // Get Theme Options from Database
        	$theme_options = dynamicnews_theme_options();
        ?>
    
        	<div id="wrap" class="container clearfix">
        		
        		<section id="content" class="primary" role="main">
    
        		<h2 id="date-title" class="archive-title">
        			<?php // Display Archive Title
        			if ( is_date() ) :
        				printf( __( 'Archiv článků: %s', 'dynamicnewslite' ), '<span>' . get_the_date( _x( 'F Y', 'date format of monthly archives', 'dynamicnewslite' ) ) . '</span>' );
        			else :
        				_e( 'Archiv', 'dynamicnewslite' );
        			endif;
        			?>
        		</h2>
        		
        		<?php if (have_posts()) : while (have_posts()) : the_post();
        		
        			get_template_part( 'content', $theme_options['posts_length'] );
        		
        			endwhile;
        			
        		dynamicnews_display_pagination();
    
        		endif;
                    
                    $catids=get_categories(array('parent'=>4,'hide_empty'=>0));
                      echo'<div id="childcats">';
                      $i=0;
                      while($i<count($catids)){
                          echo'<div class="subcat">';
                          echo'<h2>'.$catids[$i]->name.'</h2>';
                          echo'<img src="'.get_option('catimg_'.$catids[$i]->slug).'"/>';
                          echo'</div>';
                          $i++;
                      }
                      echo'</div>';
                    
                    ?>
        		
                    
                                        
        		</section>
        		
        		<?php get_sidebar(); ?>
        	</div>
        	
        <?php get_footer(); ?>
    #23049

    Mike1
    Participant

    Tak, plugin jsem nainstaloval. Soubor archive.php jsem aktualizoval, ale bohužel výsledek je ten samý. Akorát když jsem se podíval sem: , tak tam se dole zobrazily opravdu podkategorie (ale pouze texty, bez odkazů a mimo rámeček). Nejsem si jistý, jestli archive.php, je ten správný soubor, kde to kopírovat, ale tomuhle moc nerozumím. :-/

    #23051

    sjiamnocna
    Participant
    Web

    Určitě by to měl být správný soubor, bohužel jsem zaznamenal, že daný plugin se k tomuto nedá použít – potřebujete něco, co umí vypsat obrázek i mimo “smyčku”, což toto není..

    Asi by bylo vhodnější toto zadat jako zakázku (víc jak 200kč nedávejte ;) ), na webtrh.cz nebo sem do sekce Práce a zakázky tak si toho všimne více lidí

    #23052

    Mike1
    Participant

    Taky jsem o tom uvažoval. Nemám nějaké extra velké požadavky, ale rozdělení do podkategorií se mi zdá jako zcela automatické a mělo by být jako možnost již v základu wordpresu a každého takového systému. Jsem opravdu překvapen, že tomu tak není. Tak děkuji za rady, pokud by Vás ještě něco napadlo, klidně piště. Zkusím se zeptat tedy na tu zakázku, jestli by to někdo udělal.

Aktuálně je na stránce zobrazeno 9 příspěvků - 1. až 9. (z celkem 9)

Pokud chcete odpovědět na toto téma, musíte se nejdříve přihlásit.

WordPress – novinky, návody a zajímavosti