我正在尝试在标头中添加元数据标签,这是我的代码:
应用程序/扩展器/辅助/ FacebookHtml.php
<?php
namespace app\extensions\helper;
class FacebookHtml extends \lithium\template\Helper {
protected $_strings = array(
'title' => '<meta property="og:title" content="{:contenido}" />',
'site_name' => '<meta property="og:site_name" content="{:contenido}" />',
'url' => '<meta property="og:url" content="{:contenido}" />',
'description' => '<meta property="og:description" content="{:contenido}" />',
'image' => '<meta property="og:image" content="{:contenido}" />',
'image' => '<meta property="og:image" content="{:contenido}" />',
'locate' => '<meta property="og:locate" content="{:contenido}" />',
);
public function meta($contenido, $options) {
return $this->_render(__METHOD__, $options['type'], compact('contenido'));
}
}
在app / views / layout / default.html.php中,在
中 <?=$this->FacebookHtml(); ?>
在其他视图文件中:
<?=$this->FacebookHtml->meta('title', 'Test.. 1...2...3...'); ?>
我在Google和核心代码中查找了几个小时,以了解如何添加元数据。
答案 0 :(得分:3)
首先注意几点:
在您的示例中,<?=$this->FacebookHtml(); ?>
没有做任何事情。
就像Oerd在他的answer中所说,你的参数不正确。它们应与FacebookHtml.php
中的函数声明匹配。它应该是:
<?= $this->FacebookHtml->meta('Test.. 1...2...3...', array('type' => 'title')); ?>
你的助手完全按照预期进行操作,渲染原始元标记。你打电话给你的助手很重要。就目前而言,您只是将元标记渲染到位。但是,li3 Renderer类提供了$this->head()
方法,它可以完成两件事。
head
会将其添加到使用当前渲染器的所有模板的上下文中。示例:$this->head("<meta property="og:title" content="The Title" />");
$this->head()
将呈现当前head
上下文中保留的所有标记。以下是一些现实世界的例子:
应用/视图/布局/ default.html.php 强>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<?php echo $this->head() ?>
<title><?php echo $this->title(); ?> | My Website</title>
</head>
<body>
<?php echo $this->content(); ?>
</body>
</html>
应用/视图/页/ index.html.php 强>
<?php $this->FacebookHtml->meta('Test.. 1...2...3...', array('type' => 'title')); ?>
上面的示例允许您在视图中指定所需的任何标题。
除了$this->head()
之外,li3还为$this->styles()
和$this->scripts()
提供了类似的功能。
检查li3框架存储库中的default.html.php示例以获取更完整的示例:https://github.com/UnionOfRAD/framework/blob/master/app/views/layouts/default.html.php
答案 1 :(得分:0)
在视图模板中,您必须通过在options数组中提供title
来调用帮助程序:
<?= $this->facebookHtml->meta('Test.. 1...2...3...', array('type' => 'title')); ?>
我确定你已经完成了,但这里是Lithium manual page on helpers