В настоящее время мои метаописания и ключевые слова содержатся в моем default.ctp
файл находится в \app\View\Layouts
, Кажется, что это приводит к одному и тому же мета-описанию для каждой страницы моего сайта. Надеюсь, это нормально.
Я добавляю новые страницы на свой сайт и хотел бы иметь возможность настраивать мета-описание и ключевые слова только для этих конкретных страниц. Поэтому оставьте одно и то же общее мета-описание для большей части веб-сайта, но для нескольких страниц используйте собственные мета-описания.
Например, есть ли код, который я могу добавить к человеку .ctp
файлы, расположенные в app\View\Pages
это тогда переопределит мета описания, найденные в default.ctp
?
Спасибо за любую помощь!
Я не эксперт по SEO, поэтому я не могу сказать вам, насколько хороши или плохи дубликаты описаний в отношении ранжирования страниц и прочего, однако, по моему опыту, Google, например, будет склоняться к тому, чтобы чаще отдавать предпочтение содержимому страницы, чем метаописанию. в случае, если описание дублируется на многих страницах, не обязательно, конечно, должна быть корреляция.
При этом я бы предложил использовать блоки представления, они могут быть переопределены из любого места в ваших шаблонах.
раскладка
<!DOCTYPE html>
<html>
<head>
<!-- ... -->
<?php
$this->startIfEmpty('description');
echo $this->Html->meta('description', 'Default description');
$this->end();
echo $this->fetch('description');
?>
<!-- ... -->
</head>
Обновить: startIfEmpty()
был представлен с CakePHP 2.3, в более ранних версиях было бы необходимо вручную проверить существующий блок, что-то вроде, например,
$description = $this->fetch('description');
if(empty($description)) {
echo $this->Html->meta('description', 'Default description');
}
echo $description;
Конкретный шаблон страницы
$this->assign('description', $this->Html->meta('description', 'Specific description'));
Увидеть http://book.cakephp.org/2.0/en/views.html#view-blocks для дополнительной информации.
Других решений пока нет …