我已经使用代码设置了WordPress自定义帖子类型。我设法将“自定义”帖子显示在“存档”页面中,但是,如果我单击“存档”页面中的链接,那么WP将找不到单个帖子页面。
我认为自定义帖子永久链接可能存在问题。希望有人可以帮助我
functions.php
add_action('init', 'create_portfolio');
function create_portfolio(){
$portfolio_args = array(
'label' => _('Portfolio'),
'singular_label' => _('Portfolio Item'),
'public' => true,
'show_ui' => true,
'capability_type' => 'post',
'hierarchical' => false,
'rewrite' => true,
'supports' => array('title', 'editor', 'thumbnail')
);
register_post_type('portfolio', $portfolio_args);
}
页面模板
要显示自定义帖子,我使用WP查询设置了新页面模板:
<?php
/*
Template Name: The Portfolio
*/
get_header(); ?>
<?php
$args = array(
'post_type' => 'portfolio',
'post_status' => 'publish'
);
$portfolios = new WP_Query( $args );
if( $portfolios->have_posts() ) :
while( $portfolios->have_posts() ) : $portfolios->the_post();
?>
<h1><a href="<?php echo get_post_permalink() ?>"><?php echo
the_title();?></a></h1>
<?php the_post_thumbnail('medium'); ?>
<?php //the_content(); ?>
<?php the_excerpt(); ?>
<?php
// Stop the loop when all posts are displayed
endwhile;
// If no posts were found
else :
?>
<p>Sorry no posts matched your criteria.</p>
<?php
endif;
?>
<?php
get_footer();
?>
当我单击“标题”链接时,页面模板代码似乎可以正常工作,并且所有自定义帖子均按预期显示,但出现“找不到页面”错误。
我注意到当我将鼠标悬停在“标题”链接上时,浏览器状态栏中将显示以下内容:
someplace.com/wp/portfolio/christmas-cake
但是,我转到的错误页面具有以下网址:
someplace.com/wp/portfolio/christmas-cake/christmas-cake/
发生了什么事?
答案 0 :(得分:2)
我认为您只需要在主题中创建single-{posttype}.php
文件即可。
尝试创建single-portfolio.php
文件,并在那里做一些代码。
请从后端的设置->永久链接选项中再次保存永久链接设置。
您还需要在代码中传递帖子ID并按如下所示替换它:
<a href="<?php echo get_permalink($post->ID); ?>">
尝试一下,让我知道是否遇到任何问题。