Suche…


Erstellen einer benutzerdefinierten Vorlage für das Buch "Benutzerdefiniertes Post"

Um eine Vorlage für die einzelnen Posts unseres benutzerdefinierten Posts erstellen zu können, müssen Sie eine Datei mit dem Namen single- post_type_name .php erstellen, wobei post_type_name der Name unseres benutzerdefinierten Posts ist.

Zum Beispiel wird , wenn unser eigene Post - Typ „Bücher“ genannt, müssen wir eine PHP - Datei mit dem Namen Single Buch .php erstellen. Beachten Sie, dass wir den eindeutigen Namen unseres benutzerdefinierten Beitragstyps verwendet haben.

Kopieren Sie den Inhalt der Datei "single.php" aus dem Ordner "themes", fügen Sie ihn in die neue Vorlage ein und speichern Sie sie. Anschließend wird die Vorlage auf die individuelle Seite des benutzerdefinierten Beitragstyps angewendet.

Benutzerdefinierte Beitragstypvorlagen


Benutzerdefiniertes Beitragstyp-Archiv:

Um eine has_archive für einen benutzerdefinierten Beitragstyp zu erstellen, müssen Sie das Argument has_archive in Ihrer Funktion register_post_type() auf true . Im folgenden Beispiel wird ein benutzerdefinierter Beitragstyp für einen Ereignisbeitragstyp erstellt.

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

Um eine Vorlage für neue benutzerdefinierte Beitragstypen zu erstellen, müssen Sie eine neue Vorlagendatei erstellen. Um eine Vorlage für die einzelnen single-{post_type}.php zu erstellen, würden Sie sie als single-{post_type}.php und archive-{post_type}.php für das Archiv bezeichnen.

Der Dateiname für unsere archive-event.php und für die Ereignisseite wäre es single-event.php . Beide Dateien sollten sich im Stammverzeichnis des Designs befinden.

Ein Beispiel für eine Archivvorlage würde so aussehen. Aus dem 20-jährigen Thema gezogen .

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

Individuelle Post Type Einzelvorlage:

Hier ist ein Beispiel für eine einzelne Vorlage. Aus dem 20-jährigen Thema gezogen .


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

In beiden Vorlagenbeispielen werden Partials gezogen , um den inneren Inhalt anzuzeigen.

Wenn Ihr untergeordnetes / übergeordnetes Design eine einzelne / Archivvorlage hat, sollten Sie diesen Code als Vorlage für Ihre neuen Vorlagen verwenden.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow