如何使用html帮助器创建它? (使用inline = false,因此我可以基于每个视图指定它)
<link rel="canonical" href="http://www.example.com/product.php?item=swedish-fish" />
除了不起作用的补丁外,似乎无法找到任何内容。
答案 0 :(得分:9)
在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" />
答案 1 :(得分:8)
好像我的朋友告诉我,几个月前我告诉他如何做到这一点,问题解决了......
<?php echo $this->Html->meta('canonical',
'http://www.example.com/product.php?item=swedish-fish',
array('rel'=>'canonical', 'type'=>null, 'title'=>null, 'inline' => false)
);?>
答案 2 :(得分:3)
如果您正在寻找能够自动将当前网址输出到规范标记的内容,您可以使用Cakephp html帮助程序中的$this->Html->url(null, true);
或$this->here;
。
<?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
在本地开发环境中存在问题的一些情况。
答案 3 :(得分:1)
在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>
标记中。
答案 4 :(得分:0)
在 CakePHP 4 中:
在您的视图(es:Articles/view.php)中添加:
<?php $this->Html->meta(
'canonical',
Router::url(['controller' => 'Articles', 'action' => 'view', $article->slug], true),
[
'block' => true
]
);
?>
然后使用此说明将其打印在 layout/default.ctp 中
<?= $this->fetch('meta') ?>