WordPress显示自定义文章类型

4
我是一个WordPress的新手。我已经为视频创建了一个自定义文章类型,但我不知道如何在页面中显示该文章类型。例如,当用户添加视频时,他不必选择视频模板来发布视频,并且当他们打开已发布的视频时,页面会打开一个视频播放器而不是打开一个页面。我想要的是一个类似于自定义页面的东西,其中视频播放器已准备好,我只需要给视频播放器提供视频的URL。我已经有了视频播放器的代码。我该怎么做?
3个回答

13
为了为您的所有自定义文章类型的帖子或页面制作默认模板template file,您可以将模板文件命名为single-{your-cpt-name-here}.phparchive-{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)可供选择。

4
在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;

?>


1

创建完自定义文章类型后,按照以下步骤显示单个自定义文章:

  • 在您的模板中复制single.php文件并将其重命名为single-{post_type}.php(例如:single-movie.php
  • 记得从WordPress刷新永久链接!

您可以从this post获取更多详细信息。

  • 现在,如果您想显示CPT列表,则可以使用get_posts()和参数:

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

有关更多详细信息,请查看this post


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接