Wordpress:显示自定义文章类型的详细信息页面


Wordpress: Show custom post type details page

我创建了一个名为product的自定义帖子类型。之后,我创建了一个模板文件来显示该页面上的所有产品,并编写以下代码:

<?php $loop = new WP_Query( array( 'post_type' => 'acme_product',
                                   'posts_per_page' => 14 ) );
      while ( $loop->have_posts() ) : $loop->the_post();
?>
<div>
<div>
<?php the_post_thumbnail('thumbnail');
?>
</div>
<div>
<?php the_title( '<h2 class="entry-title"><a href="'.get_permalink().'" title="'.
                 the_title_attribute( 'echo=0' ).
                 '" rel="bookmark">', '</a></h2>' );
?>
</div>
</div>
<?php endwhile;
?>

但当我点击产品标题链接时,它不会显示我的产品详细信息页面。有人能帮我吗?

您需要将模板保存为single-{post_type}.php,这样在您的情况下它将是single-acme_product.php,并确保启用permalink(如果不是)

  • 登录到你的WordPress管理员
  • 转到"设置"->"固定链接"。在"常用设置"下,让我们使用Post name
  • 然后单击"保存更改"

根据您的代码,您不需要在此处定义post_type。只需使用简单的代码

<?php while ( have_posts() ) : the_post(); ?>

听起来好像您已经找到了如何循环使用产品类型。如果你是自定义帖子类型的新手,并且还不知道,我建议你研究一下自定义帖子类型(archive-{post_type}.php)的"归档"模板;这两者都可以在WP Codex的模板层次结构文档中识别。默认情况下,如果您没有为您的帖子类型提供自定义的单个模板,它将回落到single.php(如果您希望它对多个帖子类型执行双重任务,则可能需要自定义)。

考虑到这一点,假设你已经在主题中使用了singleproduct.php(或者以其他方式诱使Wordpress使用你的模板),了解你正在经历的症状会很有帮助:

  • 你得到404分了吗?这可能是一个永久链接问题,如果你还没有尝试过,你可能会考虑刷新重写规则。这可以通过访问仪表板中的设置->固定链接面板来完成
  • 是否正在使用您的模板?考虑在模板中添加一些HTML注释,并查看渲染版本的源代码,以确保使用的文件正确无误。未能加载适当的模板可能是由于文件名拼写错误或其他干扰正常模板选择逻辑的逻辑
  • 如果您得到了正确的模板,但无法显示正确的详细信息,那么您是否对单个模板的循环做了一些特别不稳定的事情

如果没有关于你实际经历的症状的明确细节,很难给你更好的指导。希望这些信息中的一些能为你指明正确的答案,但如果不是,请分享你这边发生的事情的更多细节。