个性化阅读
专注于IT技术分析

the_title()显示第一个帖子标题,而不是页面标题

我已经看到我不是第一个提出这个问题的人, 但是我发现的所有解决方案都不适合我。我正在开发一个在线商店, 其中具有针对不同产品类别的不同页面。每个类别都有自己的页面。而且我有一个模板文件引用了这种类型的页面。每个页面标题都是类别名称。这是我的模板文件中的代码:

<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 -->

到现在为止一切正常, 但是现在我得到的是第一个帖子标题, 而不是页面/类别标题, 而我找不到原因。有什么建议么?谢谢


#1


你正在使用进入”循环”的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将启动, 逐步执行或重置”循环”。在循环结束时, have_posts在调用rewind_posts之后返回0。


#2


实际上, 我发现使用single_post_title()给出了正确的响应, 因为wp_title()还包括了站点描述。

赞(0)
未经允许不得转载:srcmini » the_title()显示第一个帖子标题,而不是页面标题

评论 抢沙发

评论前必须登录!