我有像这样的自定义帖子类型
add_action( 'init', 'create_post_type_feedback' );
function create_post_type_feedback() {
register_post_type( 'testimonial',
array(
'labels' => array(
'name' => __( 'Feedbacks' ),
'singular_name' => __( 'Feedback' )
),
'supports' => array('title','editor','thumbnail','custom-fields'),
'public' => true,
'has_archive' => true,
)
);
}
在页面中,我显示了推荐列表,并使用函数get_permalink()来获取超链接。为了显示推荐帖子的详细信息,我有“single-testimonial.php”,但每当我点击查看推荐的详细信息时,它会将我重定向到像'.... / testimonial / postname'这样的链接。虽然有单证。 php,它显示了404.php的内容。
如何显示自定义帖子类型的帖子的详细信息?
答案 0 :(得分:1)
要使单个帖子页面起作用,您必须在注册自定义帖子类型功能中添加一些内容...即:
'public' => true, // yes you want it to be public?
'show_ui' => true, // you want it shown in the admin area
'show_in_menu' => true, // show it in menus etc..
'rewrite' => array('slug' => 'testimonial'), // this is the permalink structure
'show_in_nav_menus' => true, // show in navigation menus
'publicly_queryable' => true, // include this in searches
'query_var' => true, // do you want to pass values?
'capability_type' => 'post', // is it like a post or page?
'menu_position' => 25, // the position on the admin menu!
添加slug应该可以做到, 注意:一旦设置了slug,转到settings->固定链接设置回默认值,然后设置回postname,刷新重写规则,所以wordpress知道它在那里工作!应该这样做,你不需要将任何模板代码添加到任何文件,
只需添加单个testimonial.php,它应该工作或 page-testimonial.php取决于你想要它的设置..
玛蒂
答案 1 :(得分:0)
在您的single-testimonial.php中,请确保此行位于顶部:
// Template Name: Single Testimonial template
这是Wordpress可以知道这是一个模板文件,并允许您在创建推荐帖子时从“页面属性”部分选择它。
其次,使用get_post_permalink()
函数代替get_permalink()
。这是why