我遇到了在共享通用标头的许多页面中包含唯一<meta>
标记的问题。
使用PHP包含标题,其中一个header.html文件被添加到我的所有页面之前。最初结构如下的页面:
包含header.html的页面
<?php include('header.html');?>
<div id="contents">...</div>
<?php include('footer.html');?>
和header.html包含此结构
<html>
<head>
<title>...</title>
<meta>...</meta>
<link>...</link>
<scripts>...</scripts>
</head>
<body>
我现在更了解<title>
和<meta>
标签对SEO的许多方面的重要性,我意识到必须为每个页面正确格式化这些标签。为了解决这个问题,我现在已经构建了这样的页面:
包含标题的页面
<html>
<head>
<title>...</title>
<meta>...</meta>
<?php include('header.php');?>
<div id="contents">...</div>
<?php include('footer.html');?>
和header.html包含此新结构
<link>...</link>
<scripts>...</scripts>
</head>
这看起来效率低下,我觉得它首先偏离了使用PHP包含的好处。
在所有这些问题中,我要广泛而不具体。如何在页面中包含<meta>
标记,而无需将其硬编码到每个页面中,从而实现模板方法中获得的设计优势?是否有更现代的设计方法可以克服我可以实现的这些问题?
答案 0 :(得分:1)
在我看来,更好的概念是使用模板引擎,如smarty或类似的东西。这样,您只需加载要显示的每页所需的模板。除此之外,我喜欢从你用它实现的html中分离php代码。
另一种方法是通过php中的文档名称识别您的文档,并切换一个案例或者标题中是否需要包含任何内容。