我已经看到我不是第一个提出这个问题的人, 但是我发现的所有解决方案都不适合我。我正在开发一个在线商店, 其中具有针对不同产品类别的不同页面。每个类别都有自己的页面。而且我有一个模板文件引用了这种类型的页面。每个页面标题都是类别名称。这是我的模板文件中的代码:
<
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【the_title()显示第一个帖子标题,而不是页面标题】实际上, 我发现使用single_post_title()给出了正确的响应, 因为wp_title()还包括了站点描述。
推荐阅读
- timber(如何在archive.php中查询单个自定义帖子类型的帖子)
- 模板中的timber get_theme_mod
- 我的wordpress网站的代码中加载了带有不安全网址的图片,但是我找不到要删除的图片吗( [关闭])
- Zookeeper 集群部署的那些事儿
- 项管行知12--时间
- 各组件配置LDAP认证手册
- Redis中的Hash类型12个常用命令(图文例子)
- Centos7 网卡命名规则 你知道eth0怎么来的吗()
- SpringPlugin-Core在业务中的应用