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!!
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'
)
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
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.