Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Wordpress:显示自定义帖子类型详细信息页面_Php_Wordpress - Fatal编程技术网

Php Wordpress:显示自定义帖子类型详细信息页面

Php Wordpress:显示自定义帖子类型详细信息页面,php,wordpress,Php,Wordpress,我已经创建了一个名为product的自定义帖子类型。之后,我创建了一个模板文件,在该页面上显示所有产品,并编写以下代码: <?php $loop = new WP_Query( array( 'post_type' => 'acme_product', 'posts_per_page' => 14 ) ); while ( $loop->have_posts() ) : $loop->

我已经创建了一个名为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
,并确保如果不超过

  • 登录到你的WordPress管理员
  • 转到设置->永久链接。在公共设置下,让我们使用Post name
  • 然后单击“保存更改”

根据您的代码,您不需要在此处定义
post\u类型
。只需使用简单的代码

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

听起来好像你已经学会了如何循环使用你的产品类型。如果您不熟悉自定义帖子类型,并且还没有意识到这一点,我建议您研究自定义帖子类型的“归档”模板(archive-{post_type}.php)。我看到另一个答案也引用了single-{post_type}.php;这两种情况都可以在WP Codex的文档中找到。默认情况下,如果您没有为您的帖子类型提供自定义的单个模板,它将返回到single.php(如果您希望它对多个帖子类型执行双重任务,则可能需要自定义)

考虑到这一点,并假设您已经在主题中使用了single-product.php(或其他),了解您正在经历的症状会很有帮助:

  • 你有404吗?这可能是一个永久性的问题,如果你还没有尝试过,你可能会考虑刷新你的重写规则。只需访问仪表板中的Settings->Permalinks面板即可完成此操作
  • 正在使用您的模板吗?考虑将一些HTML注释添加到模板中,并在呈现的版本上查看源代码,以确保您甚至使用正确的文件。未能加载适当的模板可能是由于文件名输入错误或其他一些干扰正常模板选择逻辑的逻辑造成的
  • 如果您得到了正确的模板,但无法显示正确的详细信息,那么您是否对单个模板的循环做了一些特别不可靠的事情

如果没有关于你实际经历的症状的明确细节,就很难给你更好的指导。希望其中的一些信息能为您提供正确的答案,但如果没有,请分享有关您所在领域正在发生的事情的其他详细信息。

我创建了一个名为single-acme_product.php的模板,但它仍然没有显示任何数据。您是否启用了永久链接?根据您的代码,您不需要在此处定义post_类型。只需与简单代码一起使用
,一旦它起作用,就可以相应地更改它。您能否显示创建自定义帖子类型的代码?上面的代码是您使用的确切代码吗?因为在上面的代码中,您获取的是“acme_产品”类型的帖子,而不是“产品”