我是 WordPress 的新手。我为视频创建了自定义帖子类型,但我不知道如何在页面中显示帖子类型。例如,我希望当用户添加视频时,他在发布视频时不必选择视频模板,并且当他们打开已发布的视频时,页面会打开视频播放器而不是打开页面。我想要一个带有视频播放器的自定义页面,我所要做的就是为视频播放器提供视频的 url。已经有了视频播放器的代码。我怎样才能做到这一点?
问问题
47494 次
3 回答
11
要为您的所有自定义帖子类型帖子或页面创建默认模板文件,您可以命名您的模板文件single-{your-cpt-name-here}.php
,或者archive-{your-cpt-name-here}.php
在查看这些帖子或页面时它将始终默认为此。
因此,例如,single-video.php
您可以输入:
<?php query_posts( 'post_type=my_post_type' ); ?>
或者改为进行自定义查询以塑造您想要的输出:
<?php
$args = array(
'post_type' => 'my_post_type',
'post_status' => 'publish',
'posts_per_page' => -1
);
$posts = new WP_Query( $args );
if ( $posts -> have_posts() ) {
while ( $posts -> have_posts() ) {
the_content();
// Or your video player code here
}
}
wp_reset_query();
?>
在您的自定义循环(如上面的示例)中,Wordpress 中有许多可用的模板标签(如the_content
)可供选择。
于 2012-09-20T15:29:23.280 回答
3
在 Functions.php 中编写代码
function create_post_type() {
register_post_type( 'Movies',
array(
'labels' => array(
'name' => __( 'Movies' ),
'singular_name' => __( 'Movie' )
),
'public' => true,
'has_archive' => true,
'rewrite' => array('slug' => 'Movies'),
)
);
现在在你想显示的地方写下这段代码
<?php
$args = array( 'post_type' => 'Movies', 'posts_per_page' => 10 );
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
the_title();
echo '<div class="entry-content">';
the_content();
echo '</div>';
endwhile;
?>
于 2013-12-01T19:40:36.037 回答
1
创建 CPT 后,执行此操作以显示 CPT 的单个帖子:
- 复制
single.php
模板中的文件并将其重命名为single-{post_type}.php
(例如single-movie.php
) - 记得从 WordPress 中刷新永久链接!
您可以从这篇文章中获得更多详细信息
现在,如果您想显示 CPT 列表,您可以使用带有 args的get_posts() :
$args = array( ... 'post_type' => 'movie' )
查看此帖子以获取更多详细信息。
于 2014-08-27T19:44:27.137 回答