CakePHP规范标记与html帮助器

8fsztsew  于 2022-11-12  发布在  PHP
关注(0)|答案(5)|浏览(156)

我如何使用html帮助器创建它?(使用inline=false,这样我就可以在每个视图的基础上指定它)

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

除了一个坏掉的补丁,似乎什么都找不到。

p5cysglq

p5cysglq1#

在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" />
6psbrbz9

6psbrbz92#

好像我的朋友刚刚告诉我,几个月前我告诉了他怎么做,问题解决了...

<?php echo $this->Html->meta('canonical', 
    'http://www.example.com/product.php?item=swedish-fish', 
    array('rel'=>'canonical', 'type'=>null, 'title'=>null, 'inline' => false)
);?>
wixjitnu

wixjitnu3#

如果您正在寻找能够自动将当前url输出到规范标记中的工具,可以使用Cakephp html helper中的$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在本地开发环境中出现问题的情况。

v1l68za4

v1l68za44#

在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>标记中。

j0pj023g

j0pj023g5#

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') ?>

相关问题