PHP Include和社交媒体标签

时间:2017-04-11 21:02:29

标签: php meta

我创建了一个家庭网站。我有整个网站的标题一直通过我的主要作为PHP INCLUDE。这是必须的,因为我有一个庞大的下拉菜单目录,当我更改那个文件时需要在整个站点上进行更改。

除了一件事之外,一切都很美妙:我有独特的文章,只有那些页面上我需要特定于该页面的唯一元标记OG信息,以便在Facebook,Twitter等上共享文章时显示正确的信息。当您在整个网站上使用PHP包含标题时,如何仅更改选定页面的唯一元OG数据?

我知道第二个头标记不太理想。此外,我必须将它放在正文中,因为标题的包含文件包含顶部正文标记。

在我改变网站的编码逻辑之前,我希望有一个直截了当的解决方案,我不知道(我是一个noob编码器,所以可能是它的一部分)。

我知道我可以将主菜单只放在一个文件中,然后在第二个头文件中调用该菜单文件,然后在整个网站的一个包含中调用它...这将给我这些页面的宽容度。但希望有一个更简单的答案,比如“哦,不,他们的元OG标签可以像这样进入身体......”还是什么?

1 个答案:

答案 0 :(得分:0)

我建议在页面顶部的PHP变量中设置所需的标题信息,然后包含PHP头文件:

<强> page.php文件

<?php
$og_url = 'http://www.example.com';
include('header.php');
?>

<强>的header.php

<html>
  <head>
    <meta property="og:url" content="<?php echo $og_url; ?>" />
  </head>

这样,您可以为每个页面设置唯一的社交媒体信息,同时仍然使用头文件中的全局<head>部分。请记住,如果您在调用头文件的每个页面上未引用变量,您可能还需要回退行为:

<meta property="og:url" content="<?php echo isset($og_url) ? $og_url : $_SERVER['DOCUMENT_ROOT']; ?>" />

虽然文档必须以<html>开头,但在调用<html>之前设置PHP变量是完全可以的。它只是实际写入DOM的内容,您需要担心。

希望这有帮助! :)