• Hello, i am trying to filter the posts by category, i modified the archive.php to check the category and get a custom content template file.But it seems it doesnt work.Here is the code:
    Thanks in advance

    <?php
    /**
     * The template for displaying archive pages
     *
     * @link https://codex.www.ads-software.com/Template_Hierarchy
     *
     * @package South_Arch
     */
    
    get_header(); ?>
    
    	<div id="primary" class="content-area">
    		<main id="main" class="site-main" role="main">
    
    		<?php
    		if ( have_posts() ) : ?>
    
    			<header class="page-header">
    				<?php
    					the_archive_title( '<h1 class="page-title">', '</h1>' );
    					the_archive_description( '<div class="archive-description">', '</div>' );
    				?>
    			</header><!-- .page-header -->
    
    			<?php
    			/* Start the Loop */
    			while ( have_posts() ) : the_post();
    			 $idObj = get_category_by_slug('commercial');
    
    			 if($idObj=='commercial'){
    				 get_template_part( 'template-parts/content','commercial' );
    
    			 }else{
    
    				/*
    				 * Include the Post-Format-specific template for the content.
    				 * If you want to override this in a child theme, then include a file
    				 * called content-___.php (where ___ is the Post Format name) and that will be used instead.
    				 */
    				get_template_part( 'template-parts/content', get_post_format() );
    }
    			endwhile;
    
    			the_posts_navigation();
    
    		else :
    
    			get_template_part( 'template-parts/content', 'none' );
    
    		endif; ?>
    
    		</main><!-- #main -->
    	</div><!-- #primary -->
    
    <?php
    get_sidebar();
    get_footer();
Viewing 3 replies - 1 through 3 (of 3 total)
  • Hello,

    You can make use of the template loading hierarchy of WordPress to have a different output for a specific category.

    In you’re example you would create a category-commercial.php file and put your specific code in there. This page will be loaded instead of archive.php for that specific category.

    For more informations about the template hierarchy take a look here : https://developer.www.ads-software.com/themes/basics/template-hierarchy/ .

    Thread Starter phaidonas

    (@phaidonas)

    It works like a charm, as i realize wordpress functionality, it seems very good, is there any other option to filter the post by category dynamically, and also create a category all without reloading the page?

    Moderator bcworkz

    (@bcworkz)

    Once the page is sent to the browser, there is nothing PHP can do with the page. Also, once the browser has the page there are limited ways to affect the server without reloading.

    The solution involves jQuery and Ajax. jQuery can alter what is visible on the page, and with Ajax it can request other data to replace current data and ask for a term be added to the DB, without reloading.
    https://developer.www.ads-software.com/plugins/javascript/ajax/

Viewing 3 replies - 1 through 3 (of 3 total)
  • The topic ‘Filter by category’ is closed to new replies.