我正在创建我的自定义帖子类型,但一切都运行良好,但我只是有一个简单的问题,我是如何让它出现的。
我在我的fuctions.php文件中创建了自定义帖子类型,并制作了单个speaker.php文件。如何将我的自定义发布型扬声器页面导向主导航中的“安全扬声器”选项卡?
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) ?>
感谢任何帮助和建议!
答案 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,无论如何我都很感激。