0
29
2019-01-21

Как назначить шаблон по умолчанию для страниц кастомного типа (Template For Custom Type)

Рассмотрим создание шаблона по умолчанию для страниц кастомного типа на примере темы Zita
Понравилась страница? Поставь свою оценку!
PLUGIN_STAR_RATINGS.SCORE_TEXTPLUGIN_STAR_RATINGS.VOTES_TEXT

Когда Вы используете на сайте (под управлением CMS WordPress) кастомные типы записей, рано или поздно возникнет потребность в шаблоне который Вы могли бы назначать по умолчанию для каждого формата кастомных записей. Ведь данный шаблон может содержать именно те индивидуальные особенности которые могут подчеркнуть или выделит те или иные мета поля кастомного типа, или любые другие его элементы (ведь кастомный тип записей Вами был использован не спроста, верно). Ниже я предлагаю маленький пример который поможет Вам понять как именно можно создать данный шаблон.

Важная информация

В моём примере шаблон будет создаваться для кастомного типа "aktsii".

Любые кастомные типы, постов включая и "aktsii" я создаю при помощи плагина Custom Post Type UI

Создание файла шаблона single-название кастом тайпа.php

Для начала нам необходимо скопировать файл single.php который находится в корне темы.

В данном примере я буду пользоваться темой Zita, соответственно пример будет именно для данной темы

Теперь переименуем его в формате single-[Slag кастомного типа].php то есть у нас получится файл с таким названием:

single-aktsii.php

Содержимое файла шаблона

Теперь необходимо модифицировать данный файл в соответствии своим предпочтениям, у меня он получи такое содержание:

<?php
/**
 * The template for displaying all single posts
 * @link https://developer.wordpress.org/themes/basics/template-hierarchy/#single-post
 * @package Zita
 * @since 1.0.0
 */
get_header();
$page_post_meta_set     = get_post_meta( $post->ID, 'zita_sidebar_dyn', true );
$page_content_post_meta_set = get_post_meta( $post->ID, 'zita_content_dyn', true );?>
<div id="content" class="site-content blog-single <?php echo esc_attr(zita_page_content_layout($page_content_post_meta_set,'')); ?>">
  <div id="container" class="site-container <?php echo esc_attr(zita_sidebar_layout($page_post_meta_set,''));?>">
    <div id="primary" class="main content-area">
        <main id="main" class="site-main" role="main">

        <?php
            while ( have_posts() ) : the_post();
            // get_template_part( 'template-parts/content', get_post_type() );

            // Здесь погнали выводить кастомный контент (место get'a тимплейтоа в template-parts):

        ?>  <article id="post-<?php the_ID(); ?>" 
    <?php post_class(apply_filters( 'zita_single_post_ftr_img_space_classes','')); ?>>
<div class="zita-single-content">
<?php zita_single_post_thumbnai_and_title_order($zita_disable_title_dyn,$zita_disable_feature_image_dyn); ?>
    <div class="entry-content-wrapper">
        <div class="entry-content">
            <?php
                the_content( sprintf(
                    get_the_title()
                ) );

                // the_content();

                wp_link_pages( array(
                    'before' => '<div class="page-links">' . esc_html__( 'Pages:', 'zita' ),
                    'after'  => '</div>',
                ) );
            ?>
        </div><!-- .entry-content -->
    </div><!-- .entry-content-wrapper -->
</div>
</article><!-- #post -->

            <?php
            // END
           if(get_theme_mod('zita_single_share_icon',true)):
            if(zita_pro_activation_class()!==''):   
                zita_post_share();
            endif;
            endif;
            if(get_theme_mod('zita_single_authr_bio')):
            // Author bio.
            if ( 'post' === get_post_type() ) :
                get_template_part( 'template-parts/author-bio' );
            endif;
            endif;
            the_post_navigation();
            // If comments are open or we have at least one comment, load up the comment template.
            if ( comments_open() || get_comments_number() ) :
                comments_template();
            endif;
            endwhile; // End of the loop.
            if(get_theme_mod('zita_single_related_post')):
               zita_get_related_sigle_post_by_optn();
            endif;?>
        </main>
    </div>
    <?php if(zita_sidebar_layout($page_post_meta_set,'')!=='no-sidebar'): get_sidebar(); endif; ?>
  </div>
</div>
<?php get_footer();

После того как шаблон был создан он будет применяться всегда по умолчанию для всех кастомных странц которым данный шаблон был назначен.