WordPress自定义帖子类型-无法显示单个帖子页面

时间:2018-12-06 11:01:28

标签: php wordpress

我已经使用代码设置了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/

发生了什么事?

1 个答案:

答案 0 :(得分:2)

我认为您只需要在主题中创建single-{posttype}.php文件即可。

尝试创建single-portfolio.php文件,并在那里做一些代码。

请从后端的设置->永久链接选项中再次保存永久链接设置。

您还需要在代码中传递帖子ID并按如下所示替换它:

<a href="<?php echo get_permalink($post->ID); ?>">

尝试一下,让我知道是否遇到任何问题。