我的孩子主题有以下文件: functions.php 和 style.css
我们说我的CPT名为歌曲,我想在名为 example.com/music 的页面上显示所有歌曲
任何人都知道如何实现这一目标?任何帮助将不胜感激。
答案 0 :(得分:0)
当您使用名称歌曲创建CPT时,您的帖子包含post_type
首歌,您可以像查询任何其他post_type
一样查询并将其打印成循环:
query_posts(array('post_type' => 'songs', 'posts_per_page' => '5', 'orderby' => 'date', 'order' => 'DESC', 'offset' => 0));
if(have_posts()) {
while(have_posts()) : the_post();
get_template_part('content', 'songs');
endwhile;
}
wp_reset_query();
在上面的示例中,我使用可选内容模板进行post_type
的html呈现,以便更多地构建我的代码。
因此我的模板文件夹中会有一个名为content-songs.php
的文件,我可以在其中定义CPT的输出:
<article class="songs">
<header>
<h1><?php the_title(); ?></h1>
</header>
<div>
<?php the_content(); ?>
</div>
</article>
要在页面中输出您的CPT,您可以使用页面模板,类似于&#34;自定义页面类型&#34;。页面模板的一个简单示例是以下代码段。要使用页面模板,您需要在模板文件夹中创建一个名为page-songs.php
的文件。
<?php
/**
* Template Name: Songs
*
* @package WordPress
* @subpackage YOUR THEME NAME
* @since MyTheme 2.0
*/
get_header();
?>
<div class="song-list">
<?php
query_posts(array('post_type' => 'songs', 'posts_per_page' => '5', 'orderby' => 'date', 'order' => 'DESC', 'offset' => 0));
if(have_posts()) {
while(have_posts()) : the_post();
get_template_part('content', 'songs');
endwhile;
}
wp_reset_query();
?>
</div>
<?php
get_footer();
?>
现在,CPT输出代码包含在页面模板中。您只需要在Wordpress中创建一个新页面并选择(在新出现的对话框中)页面应该使用的模板。现在,这里还将提供模板歌曲。创建页面后,您应该会看到CPT的歌曲。