«
»
WordPressВсе для разработки шаблонов

Вывод кастомного контента в блоге на примере темы Shapely

Имеем кастомный тип «mdsv_komplektuuschie», необходимо вывести его на странице блога для этого создаются следующие php файлы:

*/wp-content/themes/shapely/template-mdsv_komplektuuschie.php — шаблон страницы на которой будет произведен вывод кастомных записей;

*/wp-content/themes/shapely/template-parts/content-mdsv_komplektuuschie.php — отвечает за внешний вид каждого поста в сетке блога;

*/wp-content/themes/shapely/template-parts/layouts/blog-mdsv_komplektuuschie.php — отвечает за внешний вид сетки блога.

Код файла template-mdsv_komplektuuschie.php:

<?php /* Template Name: Вывод Каталога */ get_header(); ?> <?php $layout_class = shapely_get_layout_class();?> <div class="row"> <?php if ( $layout_class == 'sidebar-left' ): get_sidebar(); endif; ?> <div id="primary" class="col-md-8 mb-xs-24 <?php echo esc_attr( $layout_class ); ?>"><?php /*START Отображение кастомного типа в виде блога */ $args = array( /*Указываем кастомный тип*/ 'post_type' => 'mdsv_komplektuuschie', 'publish' => true, 'paged' => get_query_var('paged'), ); query_posts($args); if ( have_posts() ) : /*END Отображение кастомного типа в виде блога*/ if ( is_home() && ! is_front_page() ) : ?> <header> <h1 class="page-title screen-reader-text"><?php esc_html( single_post_title() ); ?></h1> </header> <?php endif; $layout_type = get_theme_mod( 'blog_layout_view', 'grid' ); get_template_part( 'template-parts/layouts/blog-mdsv_komplektuuschie', $layout_type ); //get_template_part( 'template-parts/content-mdsv_komplektuuschie', $layout_type ); shapely_pagination(); else : // get_template_part( 'template-parts/content-mdsv_komplektuuschie', 'none' ); endif; ?> </div><!-- #primary --> <?php if ( $layout_class == 'sidebar-right' ): get_sidebar(); endif; ?> </div> <?php get_footer();

Код файла content-mdsv_komplektuuschie.php:

<?php /** * Template part for displaying posts. * * @link https://codex.wordpress.org/Template_Hierarchy * * @package Shapely */ ?> <article id="post-<?php the_ID(); ?>" <?php post_class('post-content post-grid-small col-md-6'); ?> > <header class="entry-header nolist"> <?php $category = get_the_category(); $image = '<img class="wp-post-image" alt="" src="' . get_template_directory_uri() . '/assets/images/placeholder.jpg" />'; if ( has_post_thumbnail() ) { $image = get_the_post_thumbnail( get_the_ID(), 'shapely-grid' ); } $allowed_tags = array( 'img' => array( 'data-srcset' => true, 'data-src' => true, 'srcset' => true, 'sizes' => true, 'src' => true, 'class' => true, 'alt' => true, 'width' => true, 'height' => true ), 'noscript' => array() ); ?> <a href="<?php echo esc_url( get_the_permalink() ); ?>"> <?php echo wp_kses( $image, $allowed_tags ); ?> </a> <?php if ( isset( $category[0] ) ): ?> <span class="shapely-category"> <a href="<?php echo esc_url( get_category_link( $category[0]->term_id ) ); ?>"> <?php echo esc_html( $category[0]->name ); ?> </a> </span> <?php endif; ?> </header><!-- .entry-header --> <div class="entry-content"> <h2 class="post-title"> <?php echo wp_trim_words( get_the_title(), 9 ); ?> </h2> <!-- post-meta --> <!-- <div class="entry-meta"> < ?php shapely_posted_on_no_cat(); ?> </div> --> <!-- post-meta --> <?php the_content( sprintf( /* translators: %s: Name of current post. */ wp_kses( __( 'Read more %s <span class="meta-nav">&rarr;</span>', 'shapely' ), array( 'span' => array( 'class' => array() ) ) ), the_title( '<span class="screen-reader-text">"', '"</span>', false ) ) ); wp_link_pages( array( 'before' => '<div class="page-links">' . esc_html__( 'Pages:', 'shapely' ), 'after' => '</div>', ) ); ?> </div><!-- .entry-content --> </article><!-- #post-## --> <?php

Код файла blog-mdsv_komplektuuschie.php:

<?php /* Start the Loop */ ?> <div class="row"> <?php global $wp_query; while ( have_posts() ) : the_post(); $i = $wp_query->current_post + 1; /* * 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-mdsv_komplektuuschie', 'grid-small' ); if ( fmod( $i, (int) 2 ) == 0 && $i != (int) $wp_query->post_count ) { echo '</div><div class="row">'; } elseif ( $i == (int) $wp_query->post_count ) { continue; } endwhile; ?> </div> <?php

После указания кастомного типа необходимо установить шаблон страницы в данном случае это шаблон с именем «Вывод Каталога» и наслаждаться результатом.

Источник записи: https://mediadoma.com

Связанные записи
Windows инструкцииWordPress

Как разделить большие файлы XML в WordPress

PageSpeed InsightsWordPressПлагины

Как отключить плагины WordPress на определенных страницах и постах с плагином и без (через функцию)

WordPressПлагины

Создать сайт членства с WordPress

ElementorWordPressПлагины

Как закрыть по умолчанию аккордеон в Elementor