Zoeken…


Een aangepaste sjabloon maken voor een boek van het type Aangepast bericht

Om een sjabloon te maken voor de afzonderlijke berichten van ons aangepaste berichttype , moeten we een bestand maken met de naam single- post_type_php. Waarbij post_type_naam de naam is van ons aangepaste berichttype .

Bijvoorbeeld, als onze aangepaste bericht type “Boeken” wordt genoemd, moeten we een PHP-bestand met de naam single- boek .php te creëren. Merk op dat we de enkelvoudige naam van ons aangepaste berichttype hebben gebruikt.

Kopieer de inhoud van de single.php uit de themamap en plak deze in de nieuwe sjabloon en sla deze op. De sjabloon wordt dan toegepast op de individuele pagina van het aangepaste berichttype.

Aangepaste berichttype sjablonen


Aangepast berichttype archief:

Om een archiveringssjabloon voor een aangepast has_archive argument has_archive in uw functie register_post_type() gelijk stellen aan true . In het onderstaande voorbeeld wordt een aangepast berichttype gemaakt voor een evenementberichttype.

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,
    )
  );
}

Om een sjabloon voor nieuwe aangepaste berichttypen te maken, moet u een nieuw sjabloonbestand maken. Om een sjabloon voor de enkele single-{post_type}.php 's te maken, noem je het single-{post_type}.php and archive-{post_type}.php voor het archief.

De bestandsnaam voor ons archiefsjabloon is archive-event.php en voor de evenementpagina is dit single-event.php . Beide bestanden moeten zich in de hoofdmap van uw thema bevinden.

Een voorbeeld van een archiefsjabloon zou er zo uitzien. Getrokken uit het thema van de twintig .

<?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();

Aangepast berichttype Enkele sjabloon:

Hier is een voorbeeld van een enkele sjabloon. Getrokken uit het thema van de twintig .


<?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();

Beide sjabloonvoorbeelden trekken gedeeltelijke delen naar binnen om de inhoud te tonen.

Als uw kind / ouder-thema een enkele / archiefsjabloon heeft, moet u die code gebruiken als boilerplate voor uw nieuwe sjablonen.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow