在PHP模板的head部分中包含元标记的最佳方法是什么?

时间:2016-07-24 09:50:04

标签: php

我创建了一个简单的php模板。

在header.php中,我有以下几行代码:

<!DOCTYPE HTML>
<html lang="en"><head>
<meta charset="utf-8">
<title><?php echo $title ?></title>
<meta name="description" content="<?php echo $description ?>"> 
<link rel="canonical" href="<?php echo $canonical ?>">
</head><body>

此处其余代码(标题,菜单等...)

在所有页面上,我在顶部有以下代码行:

<?php
$title="";
$description="";
$canonical="";
$page_schema="http://schema.org/WebPage";
$INC_DIR = $_SERVER["DOCUMENT_ROOT"]. "/includes/";
require($INC_DIR. "header.php"); ?>

我有Open Graph元标记的页面和一些没有Open Graph元标记的页面。

我有

页面
<link rel="alternate" hreflang="nl" href="">

以及不使用此功能的网页。

我有2个页面,其中包含机器人元标记无索引,以及许多不使用任何机器人元标记的网页。

现在我使用以下选项:

我在header.php中添加了以下行

<?php echo $meta_tags ?> 

示例:

<!DOCTYPE HTML>
<html lang="en"><head>
<meta charset="utf-8">
<title><?php echo $title ?></title>
<meta name="description" content="<?php echo $description ?>"> 
<link rel="canonical" href="<?php echo $canonical ?>">
<?php echo $meta_tags ?> 

页面上的以下行(不是全部使用hreflang标记):

$meta_tags='<link rel="alternate" hreflang="nl" href="">
<meta property="og:image" content="">
<meta property="og:title" content="">
<meta property="og:description" content="">
<meta property="og:url" content="">';

示例:

<?php
$title="";
$description="";
$canonical="";
$meta_tags='<link rel="alternate" hreflang="nl" href="">
<meta property="og:image" content="">
<meta property="og:title" content="">
<meta property="og:description" content="">
<meta property="og:url" content="">';
$page_schema="http://schema.org/WebPage";
$INC_DIR = $_SERVER["DOCUMENT_ROOT"]. "/includes/";
require($INC_DIR. "header.php"); ?>

这是一个很好的解决方案,在使用它们的网页上包含一些元标记吗?或者有更好的方法吗?

像添加NULL(不带引号)来清空变量,例如:$ title = NULL;

示例(对于几个不使用opengraph的页面):

的header.php:

<meta property="og:title" content="<?php echo $og_title ?>">
<meta property="og:description" content="<?php echo $og_description ?>">
<meta property="og:url" content="<?php echo $og_url ?>">';
页面上的

(不使用开放图标签):

$og_title=NULL;
$og_description=NULL;
$og_url=NULL;

什么是最佳解决方案?有更好的解决方案吗?

顺便说一下......我在这里按照本教程的步骤进行操作:http://www.heliomedia.com/tutorials/html5-template-with-seo-friendly-variables/

1 个答案:

答案 0 :(得分:0)

是的,省略您在每个页面中未使用的变量。在您的头部包含中,将每个元标记包装在一个检查中以查看它是否已被使用,例如:

<?php if (isset($og_title)) {?>
    <meta property="og:title" content="<?php echo htmlspecialchars($og_title);?>">
<?php }?>