PHP 包含<head>和社交媒体标签



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

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

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

在我去改变网站的编码逻辑之前,我希望有一个我不知道的直接解决方案(我是一个菜鸟编码员,所以这可能是其中的一部分)。

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

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

页.php

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

标头.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的内容。

希望这有帮助! :)

最新更新