Benutzerdefinierte Einzelseite für benutzerdefinierten Beitragstyp, WordPress

Lesezeit: 4 Minuten

Benutzeravatar von ajmajmajma
ajmajmajma

Ich habe gerade herausgefunden, wie ich benutzerdefinierte Beitragstypen erstellen und auf einer Seite ausgeben kann. Ich frage mich, ob ich die einzelnen Beitragsseiten für sie ändern kann?

Kann ich einfach eine einrichten single-news.php Zum Beispiel? Wenn ja, wie würde diese PHP-Datei formatiert werden und woher weiß WordPress, dass sie das verwendet? single-news.php file? Ich möchte nur, dass sie den ganzen Artikel ausspucken.

Danke schön!!

Benutzeravatar von Fred K
FredK

Nachdem Sie das CPT erstellt haben, tun Sie dies, um einzelne Posts Ihres CPT anzuzeigen:

  • Duplizieren Sie die single.php Datei in Ihrer Vorlage und benennen Sie sie um
    single-{post_type}.php (z.B. single-movie.php)
  • Leeren Sie die Permalinks aus WordPress

Weitere Einzelheiten erhalten Sie unter dieser Beitrag

  • Wenn Sie nun eine Liste von CPT anzeigen möchten, können Sie diese verwenden get_posts() mit Argumenten:

    $args = array(
    ...
    'post_type' => 'movie'
    )

  • Nur um hier eine Anmerkung hinzuzufügen. Wenn Sie neue CPTs erstellt haben und keine Ergebnisse mit korrekt benannten Vorlagen (einschließlich single.php oder single-whatever.php) – LEEREN SIE IHRE PERMALINKS. Gehen Sie einfach auf die Permalinks-Seite in WP-Admin und klicken Sie auf „Speichern“. Dies löst das Problem 9/10 Mal.

    – serraosays

    7. April 2017 um 23:57 Uhr

Custom Post Type in wordpress. Basic four steps 

Step 1 : File Path location : theme/function.php in your theme

  Paste code in function.php (register custom post type )

  <?php

add_action( 'init', 'custom_post_type_func' );
function custom_post_type_func() {
    //posttypename = services
$labels = array(
'name' => _x( 'Services', 'services' ),
'singular_name' => _x( 'services', 'services' ),
'add_new' => _x( 'Add New', 'services' ),
'add_new_item' => _x( 'Add New services', 'services' ),
'edit_item' => _x( 'Edit services', 'services' ),
'new_item' => _x( 'New services', 'services' ),
'view_item' => _x( 'View services', 'services' ),
'search_items' => _x( 'Search services', 'services' ),
'not_found' => _x( 'No services found', 'services' ),
'not_found_in_trash' => _x( 'No services found in Trash', 'services' ),
'parent_item_colon' => _x( 'Parent services:', 'services' ),
'menu_name' => _x( 'Services', 'services' ),
);
$args = array(
'labels' => $labels,
'hierarchical' => true,
'description' => 'Hi, this is my custom post type.',
'supports' => array( 'title', 'editor', 'excerpt', 'author', 'thumbnail', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'page-attributes' ),
'taxonomies' => array( 'category', 'post_tag', 'page-category' ),
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'show_in_nav_menus' => true,
'publicly_queryable' => true,
'exclude_from_search' => false,
'has_archive' => true,
'query_var' => true,
'can_export' => true,
'rewrite' => true,
'capability_type' => 'post'
);
register_post_type( 'services', $args );
}
?>

Schritt 2: Wie kann der benutzerdefinierte WordPress-Beitragstyp auf der WordPress-Vorlagenseite angezeigt werden?

  : you can show anywhere in template page like this :



<?php   $args = array( 'post_type' => 'services', 'posts_per_page' => 20 );
            $loop = new WP_Query( $args );
            while ( $loop->have_posts() ) : $loop->the_post(); ?>
            <div class="services-items">
            <?php the_title(); 
        if ( has_post_thumbnail( $post->ID ) ) {
        echo '<a href="' . get_permalink( $post->ID ) . '" title="' . esc_attr( $post->post_title ) . '">';
        echo get_the_post_thumbnail( $post->ID, 'thumbnail' );
        echo '</a>'; }

?>
            </div>
    <?php endwhile; ?>

Schritt 3: Erstellen Sie eine neue Vorlage, um einen einzelnen Beitrag wie diesen anzuzeigen

single-{Name des benutzerdefinierten Beitragstyps}.php oder single-services.php

Schritt 4: Fügen Sie den Code in die Datei single-services.php ein

 <?php /* The loop */ ?>
            <?php while ( have_posts() ) : the_post(); ?>
                <div class="main-post-div">
                <div class="single-page-post-heading">
                <h1><?php the_title(); ?></h1>
                </div>
                <div class="content-here">
                <?php  the_content();  ?>
                </div>
                <div class="comment-section-here"
                <?php //comments_template(); ?>
                </div>
                </div>

            <?php endwhile; ?>

Dies ist ein Beispiel für einen benutzerdefinierten Beitragstyp mit einer einzelnen Beitragsseite.

Zu diesem Zweck können Sie die Vorlagendatei für Ihre Seite single-news.php erstellen. und erhalten Sie Ihren Post, wie Sie möchten, per WordPress-Abfrage. zum Beispiel Ihre Seite single-news.php

<?php
//Template Name: Single News
?>

<?php
//get your content
$args = array('category' =>'9','posts_per_page'=> 3);
                        $myposts = get_posts( $args );
                        global $post;
                        foreach ( $myposts as $post ) : setup_postdata( $post ); ?> 

//go with your content

  • Das ist toll! Vielen Dank. Verzeihen Sie meine Unwissenheit, aber gibt es eine Möglichkeit, auf der einzelnen Beitragsseite (sagen wir in diesem Beispiel für Nachrichten) nur den Titel und Inhalt auszuspucken?

    – ajmajmajma

    24. Februar 2014 um 17:17 Uhr

Here are some urls u can idea about the creating custom post templates.

https://codex.wordpress.org/Post_Type_Templates
http://codex.wordpress.org/Template_Hierarchy#Custom_Taxonomies_display
https://codex.wordpress.org/Post_Type_Templates

With the help of above urls u can get idea how you can create new templates for custom post types and custom taxonomy. I think this will help you.

1442630cookie-checkBenutzerdefinierte Einzelseite für benutzerdefinierten Beitragstyp, WordPress

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy