खोज…


कस्टम पोस्ट प्रकार पुस्तक के लिए एक कस्टम टेम्पलेट बनाना

हमारे कस्टम पोस्ट प्रकार के सिंगल पोस्ट के लिए एक टेम्प्लेट बनाने के लिए, हमें सिंगल- post_type_name .php नामक एक फ़ाइल बनाने की आवश्यकता है जहाँ पोस्ट_type_name हमारे कस्टम पोस्ट प्रकार का नाम है।

उदाहरण के लिए, यदि हमारे कस्टम पोस्ट प्रकार को "पुस्तकें" कहा जाता है, तो हमें एक PHP फ़ाइल बनाने की आवश्यकता है जिसे एकल- पुस्तक .php कहा जाता है। ध्यान दें कि हमने अपने कस्टम पोस्ट प्रकार के एकवचन नाम का उपयोग किया है।

थीम फ़ोल्डर से single.php की सामग्री को कॉपी करें और इसे नए टेम्पलेट में पेस्ट करें और इसे सहेजें फिर टेम्पलेट कस्टम पोस्ट प्रकार व्यक्तिगत पेज के लिए लागू किया जाएगा।

कस्टम पोस्ट प्रकार टेम्पलेट


कस्टम पोस्ट प्रकार पुरालेख:

कस्टम पोस्ट प्रकार के लिए एक आर्काइव टेम्पलेट बनाने के लिए आपको अपने register_post_type() फ़ंक्शन में true बराबर has_archive तर्क सेट करना has_archive । नीचे उदाहरण में एक कस्टम पोस्ट प्रकार एक ईवेंट पोस्ट प्रकार के लिए बनाया गया है।

add_action( 'init', 'create_events_post_type' );
function create_events_post_type() {
  register_post_type( 'event',
    array(
      'labels' => array(
        'name' => __( 'Events' ),
        'singular_name' => __( 'Event' )
      ),
      'public' => true,
      'has_archive' => true,
    )
  );
}

नए कस्टम पोस्ट प्रकारों के लिए एक टेम्पलेट बनाने के लिए आपको एक नई टेम्पलेट फ़ाइल बनानी होगी। एकल पोस्ट पृष्ठों के लिए एक टेम्पलेट बनाने के लिए आप इसे single-{post_type}.php नाम single-{post_type}.php और archive-{post_type}.php संग्रह के लिए।

हमारे आर्काइव टेम्प्लेट का फ़ाइल नाम archive-event.php और इवेंट पेज के लिए यह single-event.phpsingle-event.php । दोनों फाइलें आपके थीम रूट डायरेक्टरी में होनी चाहिए।

एक उदाहरण संग्रह टेम्पलेट इस तरह दिखेगा। बीसवें विषय से खींचा गया।

<?php
/**
 * The template for displaying archive pages
 *
 * @link https://codex.wordpress.org/Template_Hierarchy
 *
 * @package WordPress
 * @subpackage Twenty_Seventeen
 * @since 1.0
 * @version 1.0
 */

get_header(); ?>

<div class="wrap">

    <?php if ( have_posts() ) : ?>
        <header class="page-header">
            <?php
                the_archive_title( '<h1 class="page-title">', '</h1>' );
                the_archive_description( '<div class="taxonomy-description">', '</div>' );
            ?>
        </header><!-- .page-header -->
    <?php endif; ?>

    <div id="primary" class="content-area">
        <main id="main" class="site-main" role="main">

        <?php
        if ( have_posts() ) : ?>
            <?php
            /* Start the Loop */
            while ( have_posts() ) : the_post();

                /*
                 * 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/post/content', get_post_format() );

            endwhile;

            the_posts_pagination( array(
                'prev_text' => twentyseventeen_get_svg( array( 'icon' => 'arrow-left' ) ) . '<span class="screen-reader-text">' . __( 'Previous page', 'twentyseventeen' ) . '</span>',
                'next_text' => '<span class="screen-reader-text">' . __( 'Next page', 'twentyseventeen' ) . '</span>' . twentyseventeen_get_svg( array( 'icon' => 'arrow-right' ) ),
                'before_page_number' => '<span class="meta-nav screen-reader-text">' . __( 'Page', 'twentyseventeen' ) . ' </span>',
            ) );

        else :

            get_template_part( 'template-parts/post/content', 'none' );

        endif; ?>

        </main><!-- #main -->
    </div><!-- #primary -->
    <?php get_sidebar(); ?>
</div><!-- .wrap -->

<?php get_footer();

कस्टम पोस्ट प्रकार एकल टेम्पलेट:

यहाँ एकल टेम्पलेट का एक उदाहरण दिया गया है। बीसवें विषय से खींचा गया।


<?php
/**
 * The template for displaying all single posts
 *
 * @link https://developer.wordpress.org/themes/basics/template-hierarchy/#single-post
 *
 * @package WordPress
 * @subpackage Twenty_Seventeen
 * @since 1.0
 * @version 1.0
 */

get_header(); ?>

<div class="wrap">
    <div id="primary" class="content-area">
        <main id="main" class="site-main" role="main">

            <?php
                /* Start the Loop */
                while ( have_posts() ) : the_post();

                    get_template_part( 'template-parts/post/content', get_post_format() );

                    // 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;

                    the_post_navigation( array(
                        'prev_text' => '<span class="screen-reader-text">' . __( 'Previous Post', 'twentyseventeen' ) . '</span><span aria-hidden="true" class="nav-subtitle">' . __( 'Previous', 'twentyseventeen' ) . '</span> <span class="nav-title"><span class="nav-title-icon-wrapper">' . twentyseventeen_get_svg( array( 'icon' => 'arrow-left' ) ) . '</span>%title</span>',
                        'next_text' => '<span class="screen-reader-text">' . __( 'Next Post', 'twentyseventeen' ) . '</span><span aria-hidden="true" class="nav-subtitle">' . __( 'Next', 'twentyseventeen' ) . '</span> <span class="nav-title">%title<span class="nav-title-icon-wrapper">' . twentyseventeen_get_svg( array( 'icon' => 'arrow-right' ) ) . '</span></span>',
                    ) );

                endwhile; // End of the loop.
            ?>

        </main><!-- #main -->
    </div><!-- #primary -->
    <?php get_sidebar(); ?>
</div><!-- .wrap -->

<?php get_footer();

दोनों टेम्पलेट उदाहरण आंतरिक सामग्री को प्रदर्शित करने के लिए आंशिक रूप में खींच रहे हैं।

यदि आपके बच्चे / माता-पिता के विषय में एकल / संग्रह टेम्पलेट है, तो आपको अपने नए टेम्पलेट्स के लिए बॉयलरप्लेट के रूप में उस कोड का उपयोग करना चाहिए।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow