如何动态包含元标记?

时间:2016-10-30 16:08:56

标签: php html design-patterns meta-tags

我遇到了在共享通用标头的许多页面中包含唯一<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>标记,而无需将其硬编码到每个页面中,从而实现模板方法中获得的设计优势?是否有更现代的设计方法可以克服我可以实现的这些问题?

1 个答案:

答案 0 :(得分:1)

在我看来,更好的概念是使用模板引擎,如smarty或类似的东西。这样,您只需加载要显示的每页所需的模板。除此之外,我喜欢从你用它实现的html中分离php代码。

另一种方法是通过php中的文档名称识别您的文档,并切换一个案例或者标题中是否需要包含任何内容。