使用创建wordpress帖子类型

时间:2012-02-20 19:57:00

标签: wordpress

我正在创建我的自定义帖子类型,但一切都运行良好,但我只是有一个简单的问题,我是如何让它出现的。

我在我的fuctions.php文件中创建了自定义帖子类型,并制作了单个speaker.php文件。如何将我的自定义发布型扬声器页面导向主导航中的“安全扬声器”选项卡?

THIS IS MY SITE

This is the actual link to my custom post type page with my speakers on it

fuctions.php

add_action( 'init', 'create_my_post_types' );

function create_my_post_types() {
    register_post_type( 'speakers',
        array(
            'labels' => array(
                'name' => __( 'Speakers' ),
                'singular_name' => __( 'Speakers' )
            ),
            'public' => true,
        )
    );
}

单speakers.php

<?php get_template_part( 'header', '2' );      // Header #2 (header-2.php) ?>

<?php query_posts( 'post_type=speakers'); ?>
    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>

            <div id="speakersBox" class="clearfix"><?php the_title('<h6>', '</h6>'); ?><br/><?php the_content(); ?></div>
            <hr>

    <?php endwhile; endif; ?>


<?php get_template_part( 'footer', '2' );      // Footer #2 (footer-2.php) ?>

感谢任何帮助和建议!

2 个答案:

答案 0 :(得分:0)

假设您有single-speakers.php模板来显示Single Speaker Post类型。通过检查帖子添加template_redirect操作。把它放在你的functions.php文件中。即。

add_action('template_redirect', 'redirect_to_speaker');
function redirect_to_speaker(){
   global $post;
   if(is_single() && $post->post_type == 'speakers'){
       include (TEMPLATEPATH . '/single-speakers.php');
       exit;
   }
}

可替换地。您可以使用名为template_include的过滤器。实际上使用这个:

 add_filter('template_include', 'my_speaker_template');
 function my_speaker_template($template){
       global $post;
       if(is_single() && $post->post_type == 'speakers'){
           $template = get_template_directory() . '/single-speakers.php';
       }
       return $template;
 }

另外,请阅读本文,其中包含一些有关模板的非常好的信息:http://xazure.net/2011/06/tips-snippets/wordpress/changing-wordpress-template-with-template_include/

答案 1 :(得分:0)

好吧,我找到了办法。我创建了一个新的模板页面,其中包含来自single-speakers.php文件的信息(并称之为page-speakers.php),并将我的安全扬声器页面指向该新页面。它很棒!

感谢你的帮助Naveed,无论如何我都很感激。