61 lines
1.7 KiB
PHP
61 lines
1.7 KiB
PHP
<?php
|
|
/**
|
|
* Block Name: Recent Projects
|
|
|
|
* Block to display recent projects on the home page.
|
|
*
|
|
* @package KsPortfolio
|
|
*/
|
|
|
|
namespace KsPortfolio;
|
|
|
|
$classes = 'home-recent container mx-auto my-section';
|
|
|
|
/**
|
|
* NOTE: DO NOT remove this function call - it is required to avoid editor issues.
|
|
* $is_preview is a WordPress global when in the editor.
|
|
*/
|
|
$wrapper = blockWrapperAttributes( $classes, $is_preview );
|
|
?>
|
|
|
|
<section <?php echo wp_kses_post( $wrapper ); ?>>
|
|
<header class="home-recent__head">
|
|
<h2 class="home-recent__title"><?php echo esc_html__( 'Recent Projects', 'ks-portfolio' ); ?></h2>
|
|
|
|
<a class="home-recent__view-all" href="<?php echo esc_url( get_post_type_archive_link( 'projects' ) ); ?>">
|
|
<?php echo esc_html__( 'View All', 'ks-portfolio' ); ?> →
|
|
</a>
|
|
</header>
|
|
|
|
<hr class="home-recent__divider" />
|
|
|
|
<?php
|
|
$recent = new \WP_Query(
|
|
array(
|
|
'post_type' => 'projects',
|
|
'posts_per_page' => 3,
|
|
'no_found_rows' => true,
|
|
)
|
|
);
|
|
|
|
if ( $recent->have_posts() ) :
|
|
?>
|
|
<div class="home-recent__grid grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
|
|
<?php
|
|
while ( $recent->have_posts() ) :
|
|
$recent->the_post();
|
|
|
|
get_template_part( 'views/components/project-card' );
|
|
endwhile;
|
|
|
|
wp_reset_postdata();
|
|
?>
|
|
</div>
|
|
<?php else : ?>
|
|
<div class="home-recent__empty">
|
|
<h3><?php echo esc_html__( 'Nothing here yet…', 'ks-portfolio' ); ?></h3>
|
|
<p><?php echo esc_html__( 'No published projects found.', 'ks-portfolio' ); ?></p>
|
|
</div>
|
|
<?php endif; ?>
|
|
</section>
|