我有一个模板,用于我网站的许多不同部分(关于、新闻等)。导航栏需要在您所在的区域下方显示一个小的图形箭头。我是通过模板传递的:
$page = \'about\';
require(\'header.php\');
。。。但后来我意识到这是行不通的,因为我编辑的模板文件用于一系列不同的部分,而不仅仅是“关于”。
所以我需要一些关于\'page\'
界面屏幕,我可以以某种方式指示用户所在的页面。解决方案的一些想法:
想法1:WordPress是否会在“body”标记上设置某种类来指示您所在的页面(就像它根据页面名称生成一个slug并将其作为类添加到body标记)?然后在CSS中做我需要做的所有事情,而不使事情复杂化想法2:WordPress的“页面”管理上有一个内置字段,可以让我的标题知道它在哪一页上想法3:我可以为每个主要部分复制我的模板。这样做很愚蠢我真的不想走整个额外字段的路线,手动将元数据字段添加到我的页面,在页面加载时将其从db中提取,等等。这似乎太过分了,因为我有办法让模板代码识别它在哪个页面上使用。
最合适的回答,由SO网友:gmazzap 整理而成
如果模板使用body_class()
喜欢
<body <?php body_class(); ?>>
在这种情况下,body标记类似于:
<body class="page page-id-6 page-template-default">
如果查看页面的id为6,并且使用的模板是默认模板。
看见Codex
然而,在全球$post
变量甚至在标头中和调用之前都可用the_post()
. 所以$post->post_name
将包含页面的slug,您可以根据需要使用它。