Я пытаюсь добавить метаданные теги в заголовок, это мой код:
приложение / расширение / помощник / 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'));
}
}
В приложении / views / layout / default.html.php, внутри
<?=$this->FacebookHtml(); ?>
В другом файле просмотра:
<?=$this->FacebookHtml->meta('title', 'Test.. 1...2...3...'); ?>
Я часами ищу в Google и в основном коде, чтобы узнать, как добавить метаданные.
Сначала несколько заметок:
В вашем примере <?=$this->FacebookHtml(); ?>
ничего не делает
Как сказал Орд в своем ответ, Ваши параметры неверны. Они должны соответствовать вашему объявлению функции в 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()
с аналогичной функциональностью.
Проверьте пример default.html.php из репозитория платформы li3 для более полного примера: https://github.com/UnionOfRAD/framework/blob/master/app/views/layouts/default.html.php
В ваших шаблонах просмотра вы должны вызвать помощника, предоставив title
в массиве параметров:
<?= $this->facebookHtml->meta('Test.. 1...2...3...', array('type' => 'title')); ?>
Я уверен, что вы уже прошли через это, но вот Литий страница руководства по помощникам