Канонический тег CakePHP с поддержкой html - PullRequest
9 голосов
/ 15 марта 2011

Как я могу создать это с помощью помощника HTML? (с inline = false, чтобы я мог указать его для каждого просмотра)

<link rel="canonical" href="http://www.example.com/product.php?item=swedish-fish" />

Не могу найти ничего по этому поводу, кроме патча, который не работает.

Ответы [ 4 ]

9 голосов
/ 15 марта 2011

Нашел это на сайте отслеживания ошибок CakePHP: http://cakephp.lighthouseapp.com/projects/42648/tickets/1063-support-for-custom-meta-tag-elements-in-htmlhelper

Видимо, вы можете использовать

echo $this->Html->meta('canonical', 'http:://example.com', array('rel'=>'canonical', 'type'=>null, 'title'=>null));
//outputs <link href="http:://example.com" rel="canonical" />
8 голосов
/ 15 марта 2011

Кажется, мой друг только что сказал мне, что я сказал ему, как это сделать несколько месяцев назад, проблема решена ...

<?php echo $this->Html->meta('canonical', 
    'http://www.example.com/product.php?item=swedish-fish', 
    array('rel'=>'canonical', 'type'=>null, 'title'=>null, 'inline' => false)
);?>
3 голосов
/ 09 декабря 2014

Если вы ищете что-то, что автоматически выводит текущий URL в канонический тег, вы можете использовать $this->Html->url(null, true); или $this->here; в html-помощнике Cakephp.

<?php echo $this->Html->meta('canonical', $this->Html->url(null, true), array('rel'=>'canonical', 'type'=>null, 'title'=>null)); ?>

Или

<?php echo $this->Html->meta('canonical', $this->here, array('rel'=>'canonical', 'type'=>null, 'title'=>null)); ?>

ПРЕДУПРЕЖДЕНИЕ: Я слышал о некоторых случаях, когда у $this->here возникали проблемы в локальных средах разработки.

1 голос
/ 28 июля 2017

В CakePHP 2:

echo $this->Html->meta('canonical', 'http://example.com', array('rel' => 'canonical', 'type' => null, 'title' => null, 'inline' => false));

В CakePHP 3:

echo $this->Html->meta('canonical', 'http://example.com', array('rel' => 'canonical', 'type' => null, 'title' => null, 'block' => true));

Обратите внимание, что основное различие между версиями заключается в том, что CakePHP 2 использует 'inline' => false, тогда как CakePHP 3 использует 'block' => true для помещения их в теги <head> документа.

...