我正在使用Wordpress中的一些PHP。 我试图给每个新帖子标题一个独特的h1 ID,取自帖子名称。
因此,如果发布名为“第1章”的帖子,标题应该是
<h1 id="Chapter 1">Chapter 1</h1>
以下代码没有做出魔术
<h1 id="<?php the_title(); ?>"><?php the_title(); ?></h1>
答案 0 :(得分:1)
如果您没有回复the_title();
内部但回复,则应添加echo
<h1 id="<?php echo get_the_title(); ?>"><?php echo get_the_title(); ?></h1>
OR
<h1 id="<?= get_the_title(); ?>"><?= get_the_title(); ?></h1>
- 将the_title()
更改为get_the_title();
正如评论中所建议的,获取id的标题可能是一个不好的选择,你可以剥去空格或任何不是字母或数字的字符:
preg_replace('/[^A-Za-z0-9]/', '', get_the_title());
答案 1 :(得分:1)
我假设你正在使用WordPress,因为the_title
显然是一个WordPress模板循环函数。
正如所解释的here空格不是ID值的有效字符。大多数浏览器会在ID中的空格后删除所有内容。
我建议使用the slug:
echo basename(get_permalink())
答案 2 :(得分:1)
执行此操作的正确函数是the_ID();
例如:
<h1 id="<?php the_ID(); ?>"><?php the_title(); ?></h1>
答案 3 :(得分:0)
将global $post;
定义到页面顶部以获取当前的post's
数组
<h1 id="<?php echo 'Chapter'.$post->ID; ?>"><?php echo $post->post_title; ?></h1>
我建议你以上面提到的方式而不是在id
属性中打印标题,因为标题可能会发生得太长,所以你的id属性将与帖子的标题相同,这是一个不好的做法。