Viewing 1 replies (of 1 total)
  • I’m currently working on this too. I have got so far, maybe we can work on this together. Here is what I have done.

    I created a child theme (look up how to do this). Then in the child theme, I created the following:

    archive-jetpack-portfolio.php (you can just create archive.php if you are using it for standard blog)

    inside is this code:

    <?php
    /**
     * The main template file
     *
     * This is the most generic template file in a WordPress theme
     * and one of the two required files for a theme (the other being style.css).
     * It is used to display a page when nothing more specific matches a query.
     * E.g., it puts together the home page when no home.php file exists.
     *
     * @link https://developer.www.ads-software.com/themes/basics/template-hierarchy/
     *
     * @package WordPress
     * @subpackage Twenty_Twenty
     * @since Twenty Twenty 1.0
     */
    
    get_header();
    ?>
    
    <main id="site-content" role="main">
    
    	<?php
    
    	$archive_title    = '';
    	$archive_subtitle = '';
    
    	if ( is_search() ) {
    		global $wp_query;
    
    		$archive_title = sprintf(
    			'%1$s %2$s',
    			'<span class="color-accent">' . __( 'Search:', 'twentytwenty' ) . '</span>',
    			'&ldquo;' . get_search_query() . '&rdquo;'
    		);
    
    		if ( $wp_query->found_posts ) {
    			$archive_subtitle = sprintf(
    				/* translators: %s: Number of search results. */
    				_n(
    					'We found %s result for your search.',
    					'We found %s results for your search.',
    					$wp_query->found_posts,
    					'twentytwenty'
    				),
    				number_format_i18n( $wp_query->found_posts )
    			);
    		} else {
    			$archive_subtitle = __( 'We could not find any results for your search. You can give it another try through the search form below.', 'twentytwenty' );
    		}
    	} elseif ( is_archive() && ! have_posts() ) {
    		$archive_title = __( 'Nothing Found', 'twentytwenty' );
    	} elseif ( ! is_home() ) {
    		$archive_title    = get_the_archive_title();
    		$archive_subtitle = get_the_archive_description();
    	}
    
    	if ( $archive_title || $archive_subtitle ) {
    		?>
    
    		<header class="archive-header has-text-align-center header-footer-group">
    
    			<div class="archive-header-inner section-inner medium">
    
    				<?php if ( $archive_title ) { ?>
    					<h1 class="archive-title"><?php echo wp_kses_post( $archive_title ); ?></h1>
    				<?php } ?>
    
    				<?php if ( $archive_subtitle ) { ?>
    					<div class="archive-subtitle section-inner thin max-percentage intro-text"><?php echo wp_kses_post( wpautop( $archive_subtitle ) ); ?></div>
    				<?php } ?>
    
    			</div><!-- .archive-header-inner -->
    
    		</header><!-- .archive-header -->
    
    		<?php
    	}
    ?>
    <div class="grid" id="container grid">
     <?php
    	if ( have_posts() ) {
    
    		$i = 0;
    
    		while ( have_posts() ) {
    			$i++;
    			if ( $i > 1 ) {
    				echo ' ';
    			}
    			the_post();
    
    			get_template_part( 'template-parts/content-archive-jetpack-portfolio', get_post_type() );
    
    		}
    	} elseif ( is_search() ) {
    		?>
    
    		<div class="no-search-results-form section-inner thin">
    
    			<?php
    			get_search_form(
    				array(
    					'label' => __( 'search again', 'twentytwenty' ),
    				)
    			);
    			?>
    
    		</div></div></div><!-- .no-search-results -->
    
    		<?php
    	}
    	?>
    
    	<?php get_template_part( 'template-parts/pagination' ); ?>
    
    </main><!-- #site-content -->
    
    <?php get_template_part( 'template-parts/footer-menus-widgets' ); ?>
    
    <?php
    get_footer();
    

    You also need this file placed in template parts folder. so it should be located in:
    themename-child -> template-parts -> content-archive-jetpack-portfolio

    <?php 
    	$taxonomy = 'jetpack-portfolio-type'  ; 
        	   $tax_terms = get_the_terms( get_the_ID(), $taxonomy );
        	   ?>
        	   
    
    <article <?php post_class(); ?> id="post-<?php the_ID(); ?>">
     
    
    <?php
    /**
     * Displays the post header
     *
     * @package WordPress
     * @subpackage Twenty_Twenty
     * @since Twenty Twenty 1.0
     */
    
    $entry_header_classes = '';
    
    if ( is_singular() ) {
    	$entry_header_classes .= ' header-footer-group';
    }
    
    ?>
    
    <header class="entry-header has-text-align-center<?php echo esc_attr( $entry_header_classes ); ?>">
    
    </header><!-- .entry-header -->
    
     <div class ="box archive-container">
    
    	<div class="entry-header-inner section-inner medium">
    
    		<?php
    		/**
    		 * Allow child themes and plugins to filter the display of the categories in the entry header.
    		 *
    		 * @since Twenty Twenty 1.0
    		 *
    		 * @param bool   Whether to show the categories in header, Default true.
    		 */
    		$show_categories = apply_filters( 'twentytwenty_show_categories_in_entry_header', true );
    
    		if ( true === $show_categories && has_category() ) {
    			?>
    
    			<div class="entry-categories">
    				<span class="screen-reader-text"><?php _e( 'Categories', 'twentytwenty' ); ?></span>
    				<div class="entry-categories-inner">
    					<?php the_category( ' ' ); ?>
    				</div><!-- .entry-categories-inner -->
    			</div><!-- .entry-categories -->
    
    			<?php
    		}
    
    		if ( is_singular() ) {
    			the_title( '<h1 class="entry-title">', '</h1>' );
    		} 
    	else {	
    		?>
    		<div class="portfolio-header">
    			
    		
    		<?php
    		
    			the_title( '<h1 class="entry-title heading-size-1"><a href="' . esc_url( get_permalink() ) . '">', '</a></h2>' );
    		} ?>
    </div>
    		<?php
    		$intro_text_width = '';
    
    		if ( is_singular() ) {
    			$intro_text_width = ' small';
    		} else {
    			$intro_text_width = ' thin';
    		}
    
    		if ( has_excerpt() && is_singular() ) {
    			?>
    
    			<div class="intro-text section-inner max-percentage<?php echo $intro_text_width; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- static output ?>">
    				<?php the_excerpt(); ?>
    			</div>
    
    	
    		
    			<?php
    		}
    
    		// Default to displaying the post meta.
    		twentytwenty_the_post_meta( get_the_ID(), 'single-top' );
    		?>
    
    	</div><!-- .entry-header-inner -->
    
    	<?php
    
    	if ( ! is_search()  ) {
    		get_template_part( 'template-parts/featured-image' );
    	}
    
    	?>
    
    	<div class="post-inner <?php echo is_page_template( 'templates/template-full-width.php' ) ? '' : 'thin'; ?> ">
      
    		<div class="entry-content">
    	    <div class="portfolio-filter"> 
                 <span class='type'><p><?php the_terms(get_the_ID(), 'jetpack-portfolio-type', ' Type: ',' ? ', ''); ?> </p></span>
                <span class='genre'><p><?php the_terms(get_the_ID(), 'jetpack-portfolio-tag', 'Genres: ',' ? ', ' '); ?> </p></span>
                
                
              <div class="summary"> 
    
    			<?php
    			if ( is_search() || ! is_singular() && 'summary' === get_theme_mod( 'blog_content', 'full' ) ) {
    				the_excerpt();
    			} else {
    				the_content( __( 'Continue reading', 'twentytwenty' ) );
    			}
    			?>
    			</div>  
    </div></div>
    		</div>
    		<!-- .entry-content --><!-- .post-inner -->
    
    	<div class="section-inner">
    
    	    
    		<?php
    		wp_link_pages(
    			array(
    				'before'      => '<nav class="post-nav-links bg-light-background" aria-label="' . esc_attr__( 'Page', 'twentytwenty' ) . '"><span class="label">' . __( 'Pages:', 'twentytwenty' ) . '</span>',
    				'after'       => '</nav>',
    				'link_before' => '<span class="page-number">',
    				'link_after'  => '</span>',
    			)
    		);
    
    		edit_post_link();
    		
    		
    
    		// Single bottom post meta.
    		twentytwenty_the_post_meta( get_the_ID(), 'single-bottom' );
    
    		if ( post_type_supports( get_post_type( get_the_ID() ), 'author' ) && is_single() ) {
    
    			get_template_part( 'template-parts/entry-author-bio' );
    
    		}
    		?>
    
    	</div><!-- .section-inner -->
    
    	<?php
    
    	if ( is_single() ) {
    
    		get_template_part( 'template-parts/navigation' );
    
    	}
    
    	/**
    	 *  Output comments wrapper if it's a post, or if comments are open,
    	 * or if there's a comment number – and check for password.
    	 * */
    	if ( ( is_single() || is_page() ) && ( comments_open() || get_comments_number() ) && ! post_password_required() ) {
    		?>
    
    		<div class="comments-wrapper section-inner">
    
    			<?php comments_template(); ?>
    
    		</div><!-- .comments-wrapper -->
    
    		<?php
    	}
    	?>
    
    </article><!-- .post -->
    

    Then I use this css:

    
    .grid{
      width: 100%;
      height: 100%;
      display: grid;
      grid-template-columns: 1fr 1fr 1fr; 
    	grid-template-rows: 600px;
    	grid-auto-rows: 600px;
    	padding: 20px;
    	grid-column-gap: 15px;
    	grid-row-gap: 15px;
    justify-items: start;
    
    }
    
    .box {
      background-color: beige;
      color: black;
    	background-color: white; 
    	border: solid;
    	height: 600px;
    
    }
    .portfolio-header{
    	height: 4.2em;
    }
    .box h1 a{
    	font-size: 3rem;
    	height: 70px;
    	padding-top: 1rem;
    	padding-bottom: 1rem;
    }

    for two columns you need two “1fr”

    I am trying to get mine so that if one post doesn’t have an image or the text goes onto a second line, it doesn’t matter, everything is perfectly aligned.

    • This reply was modified 3 years, 10 months ago by seabear211.
Viewing 1 replies (of 1 total)
  • The topic ‘Creating custom archive page in twenty twenty theme’ is closed to new replies.