如何创建页面模板以显示自定义帖子类型

时间:2016-08-20 04:00:09

标签: php wordpress custom-post-type

我想创建一个页面模板文件来显示自定义内容类型的帖子。实际上我有3种不同类型的帖子类型'书籍','作者'和新闻。 这是我的问题这3个帖子类型有不同的模板,我想在单独的页面中显示每个主题,第一个问题我应该在page.php或single.php中调用这些帖子类型?我已经知道single.php用于动态内容而page.php用于静态内容,我应该创建什么来显示这些帖子类型的内容? 这是一个例子: 我创建了page-author.php文件来显示作者的帖子类型 这是我的代码

<?php /* Template Name: author-page-theme */ 
    get_header(); ?>
<div class="head-style col-md-12 col-sm-12 col-xs-12">
    <?php while ( have_posts() ) : the_post(); ?>
    <div class="title-pack col-md-12 col-sm-12 col-xs-12">
        <span class="line visible-sm-block"></span>
        <span class="visible-sm-block tittle-style"><?php the_title(); ?></span>
    </div>
    <div class="row writer-crit">
        <div class="writer-crit-box col-md-9 col-sm-8 col-xs-12">
            <div class="col-md-11 col-sm-11 col-xs-12">
                <?php $args = array( 'post_type' => 'Author', 'posts_per_page' => 5 ); 
                $loop = new WP_Query( $args );
                while ( $loop->have_posts() ) : $loop->the_post(); ?>
                    <a class="writer-link col-md-12 col-sm-12 col-xs-12" href="<?php post_permalink(); ?>">
                        <div class="writer-row1 col-md-12 col-sm-12 col-xs-12">
                            <div class="col-md-2 col-sm-3 col-xs-12 image-right">
                                <?php the_post_thumbnail(array('class' => 'img-responsive')); ?>
                            </div>
                            <div class="col-md-10 col-xs-12 col-sm-9 col-xs-12 pull-right writer-content">
                                <h3><?php the_title(); ?></h3>
                                <?php if ( get_field('auth-trans') ) { 
                                    echo '<h4>'.get_field('auth-trans').'</h4>';} ?>    
                                <?php if ( get_field('writer-bio') ) { 
                                    echo '<p>'.get_field('writer-bio').'</p>';} ?>

                                <span>...</span>
                            </div>
                        </div>
                    </a>
                <?php endwhile; // End of the loop. ?>                                              
            </div>
        </div>
    <?php endwhile; // End of the loop. ?>
    </div>  
<?php get_footer(); ?> 

但它不起作用。它只显示索引页面模板而不是我为此页面创建的内容。  有关如何发布此帖子的任何建议? 我是WordPress的新手,这是我的第一个项目,所以我真的需要帮助。

3 个答案:

答案 0 :(得分:0)

您需要从管理员创建一个页面,然后选择模板&#39; author-page-theme&#39;从下拉框中显示&#39;页面模板&#39;。要在前端显示,请转到外观 - &gt;菜单。然后选择相应的菜单。然后将新创建的页面拖动到所选菜单。

答案 1 :(得分:0)

$args = array(

    'posts_per_page'   => 5,
    'offset'           => 0,
    'category'         => '',
    'category_name'    => '',
    'orderby'          => 'date',
    'order'            => 'DESC',
    'include'          => '',
    'exclude'          => '',
    'meta_key'         => '',
    'meta_value'       => '',
    'post_type'        => 'Author',
    'post_mime_type'   => '',
    'post_parent'      => '',
    'author'       => '',
    'author_name'      => '',
    'post_status'      => 'publish',
    'suppress_filters' => true 
);

$posts_array = get_posts( $args );

然后var_dump($posts_array);

另外,请检查您输入的post_type是否正确。

答案 2 :(得分:0)

您可以浏览此处描述的自定义帖子类型模板:https://codex.wordpress.org/Post_Type_Templates