【问题标题】:dynamically inserting meta description into php page将元描述动态插入到 php 页面中
【发布时间】:2013-03-30 21:54:33
【问题描述】:

好的,所以我创建了这个网站并想将其转换为 php,只是为了好玩。网站结构看起来像任何“正常”的网络结构。像这样:-

<html xmlns="http://www.w3.org/1999/xhtml">


 <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
    </head>

<body class="fish">
</body>
</html>

好的,所以我在header.php 文件中包含了从head 到正文标记的开头。所以 header.php 看起来像这样:- `

 <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
    </head>

<body class="fish">`

现在问题来了。每个页面都应该有自己的titlebody 类!并且每个页面显然也会有它自己的元描述和内容。我将如何完成这些家伙?我正在考虑创建一个基于页面标题的元描述和正文类的函数。但是有没有更聪明的方法来实现这一点?谢谢

【问题讨论】:

  • 元描述来自哪里?
  • 使用模板系统/引擎并使用变量
  • @connor 抱歉错误,为我更正。元描述通常放在头部
  • @kingkero 你推荐哪个模板系统/引擎?
  • 聪明,恕我直言。从哪里获取元描述?一个变量?数据库?

标签: php


【解决方案1】:

使用模板引擎或 MVC 框架(例如 CakePHP 或 CodeIgniter),其中已包含模板引擎。

【讨论】:

  • 大声笑我什至不记得我何时发布了这个业余问题。无论哪种方式,即使我知道 MVC 框架只是想弄乱程序 php 代码。我认为 Laravel 是迄今为止我最喜欢的。
  • 是的,我会更新我的答案以列出 Laravel 或 Symfony - Laravel 也是我的最爱。
【解决方案2】:

如果它是动态的,您应该创建一个模板来执行此操作。对于如何传递数据,您有很多选择,无论是数据库、对象、数组等。根据页面标题生成数据非常困难,除非您使用非常持久的标题格式每一页。

<head>
    <meta property="og:title" content="<?= $values['title'] ?>" />
    <meta property="og:type" content="website" />
    <meta property="og:url" content="<?= $values['url'] ?>" />
    <meta property="og:image" content="<?= $values['image'] ?>/>
    <meta property="og:site_name" content="<?= values['name'] ?>"/>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta name="ROBOTS" content="NOODP">
    <link rel="icon" type="image/png" href="<?= $values['image'] ?>" />
    <title><?= $values['title'] ?></title>
    <? if(isset($values['css'])) : ?>
    <? foreach($values['css'] as $css) : ?>
        <link href="/css<?= $css['data'] ?>" rel="stylesheet" type="text/css" />
    <? endforeach ?>
    <? endif ?>
    <? if(isset($values['js'])) : ?>
    <? foreach($values['js'] as $js) : ?>
        <script src="/js<?= $js['data'] ?>" type="text/javascript"></script>
    <? endforeach ?>
    <? endif ?>
</head>

【讨论】:

    【解决方案3】:

    在您的header.php 中执行以下操作:

    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title><?php echo $_tpl['title'] ?></title>
        <meta name="description" content="<?php echo $_tpl['meta_desc'] ?>">
    </head>
    
    <body class="<?php echo $_tpl['body_class'] ?>">
    

    在您的页面上,在使用 include('header.php') 之前,请按如下方式定义变量:

    $_tpl = array();
    $_tpl['title'] = 'My Title';
    $_tpl['meta_desc'] = 'My meta description.';
    $_tpl['body_class'] = 'fish';
    

    正如其他人所说,不要重新发明轮子。您最好调查一些已经建立的 PHP 模板引擎:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-06
      • 1970-01-01
      • 1970-01-01
      • 2019-03-23
      • 2017-05-01
      相关资源
      最近更新 更多