自定义单页为自定义帖子类型,wordpress
我刚刚想出如何使自定义帖子类型,并将它们送出到页面上,我想知道如果我可以更改他们的单个帖子页面?例如,我可以设置一个“single-news.php”吗?如果是这样,该PHP文件将如何格式化,以及wordpress如何知道如何使用该single-news.php文件?我只是想让他们吐出整篇文章。自定义单页为自定义帖子类型,wordpress
谢谢!
您创建的CPT之后,显示您的CPT的单个职位做到这一点:
- 复制的
single.php
文件在你的模板和将其重命名为single-{post_type}.php
(例如,single-movie.php
) - 从WordPress中刷新永久链接
您可以从this post
-
得到更多的细节现在,如果你想显示CPT的列表,你可以使用get_posts()与ARGS:
$args = array( ... 'post_type' => 'movie' )
为此,您可以为您的single-news.php页面创建模板文件。 ,并通过wordpress查询获取您的文章。 例如您的单页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
这太棒了!非常感谢。原谅我的不负责任,但是在单个帖子页面(让我们来看这个例子中的新闻)只是吐出标题和内容而已? – ajmajmajma
阅读此,https://codex.wordpress.org/Post_Type_Templates – Dinesh
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.
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);
}
?>
第2步:如何在wordpress模板页面显示WordPress的自定义帖子类型?
: 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; ?>
3步:创建.PHP 或 单services.php的节目单后这样
单{自定义后类型名称}新模板
第4步:粘贴代码in single-services.php文件
<?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; ?>
这是自定义帖子类型的示例与单个帖子页。
只是在这里添加一个笔记。如果您创建了新的CPT,但没有看到使用正确命名的模板(包括'single.php'或'single-whatever.php')的结果 - 刷新您的PERMALINKS。只需进入WP-admin的永久链接页面,然后点击“保存”即可。这解决了问题9/10次。 – staypuftman