我已经看到我不是第一个提出这个问题的人,但我找到的解决方案都没有对我有用。我正在开发一个在线商店,它为不同的产品类别提供不同的页面。每个类别都有自己的页面。我有一个模板文件,它指的是那种类型的页面。每个页面标题都是类别名称。这是我的模板文件中的代码:
<div id="store-front" class="main-music-area">
<?php if ( $products->have_posts() ) : $i = 1; ?>
<header class="page-header">
<?php
the_title( '<h1 class="page-title">', '</h1>' );
?>
</header><!-- .page-header -->
到目前为止它工作得很好,但现在我得到的是第一个帖子标题,而不是页面/类别标题,我找不到原因。有什么建议么?谢谢
您正在使用进入“循环”的 have_posts,因此 the_title 与产品循环而不是页面相关。
因此,您可以使用get_the_title()
和使用页面的 ID 或先显示标题,然后才使用该have_posts
功能。
例如:
<?php rewind_posts(); ?>
<header class="page-header">
<?php
the_title( '<h1 class="page-title">', '</h1>' );
?>
</header><!-- .page-header -->
<?php if ( $products->have_posts() ) : $i = 1; ?>
编辑:您可能在这部分之前开始了一个循环,因此在调用 the_title() 之前使用 rewind_posts() 以重置前一个循环。
显示或返回当前帖子的未转义标题。此标签只能在 The Loop 内使用,要在循环外使用 get_the_title 获取帖子的标题。如果帖子是受保护的或私有的,则会在标题前加上“受保护:”或“私有:”字样。
作为副作用,have_posts 启动、逐步执行或重置循环。在循环结束时,have_posts 在调用 rewind_posts 后返回 0。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句