【问题标题】:CakePHP: Adding meta nofollow tag to layout from viewCakePHP:将元 nofollow 标记添加到视图中的布局
【发布时间】:2012-02-01 14:37:32
【问题描述】:

我希望能够从 CakePHP 中的视图(或控制器,如果可能的话)添加元标记

我有一个类似/mycontroller/myview 的页面,但是当它使用以下过滤器访问时:

/mycontroller/myview/page:2/max_price:500

然后我想添加meta no follow标签。

HtmlHelper 类上有一个meta 方法。

当我这样称呼它时:

$this->Html->meta('keywords', 'test test test', array('inline'=>false));

它会创建一个这样的元标记:

<meta name="keywords" content="test test test" />

但是,当我这样称呼它时:

$this->Html->meta('robots', 'noindex, nofollow', array('inline'=>false));

我自然会期望并想要它来创建这个:

<meta name="robots" content="noindex, nofollow" />

但我得到了这个:

<link href="http://www.example.com/mycontroller/noindex, nofollow" type="application/rss+xml" rel="alternate" title="robots" />

我做错了什么?

【问题讨论】:

    标签: cakephp cakephp-1.3


    【解决方案1】:

    来自documentation page(最后一行)

    如果要添加自定义元标记,则应将第一个参数设置为数组。要输出 robots noindex 标签,请使用以下代码:

    echo $this->Html->meta(array('name' => 'robots', 'content' => 'noindex'));
    

    在你的情况下:

    echo $this->Html->meta(array('name' => 'robots', 'content' => 'noindex, nofollow'),null,array('inline'=>false));
    

    希望对你有帮助

    【讨论】:

    • 感谢修复它。 :) 顺便说一句,当 inline 为 false 时,我看到每个人仍然使用 echo,实际上并没有回显任何内容,并且当您在没有回显的情况下调用它时仍然有效。当元素不是内联时,我没有使用 echo,有什么理由吗?我只是问,因为我看到很多人这样做。
    • =P 你是对的,如果元素不是内联的,你不应该做 echo .. 它不会改变任何东西,这只是我的一个坏习惯.. srry跨度>
    【解决方案2】:

    这是来自this page 的代码的调整版本。我已经测试过了,它确实有效:

    <?php
    echo $this->Html->meta(
        array('name' => 'robots', 'content' => 'noindex, nofollow'),
        null,
        array('inline'=>false));
    ?>
    

    显然,您可以将其写在一行中 - 我只是将其分解为便于在此处查看。

    【讨论】:

    • +1 谢谢,你的和高兴的都是正确的,但我只能接受一个。
    • 你应该回应这个
    【解决方案3】:

    您可以使用 $this-&gt;set() 从控制器到视图设置相同的方式从视图到布局设置变量,我会有这样的设置:

    // View
    if($condition) {
        $this->set('nofollow', true);
    }
    
    // Layout (in <head>)
    if(isset($nofollow) && $nofollow) {
        echo $this->Html->meta(array('name' => 'robots', 'content' => 'noindex, nofollow'));
    
    }
    

    现在您有一个简短的 1-liner 可以从任何视图文件中添加 nofollow 指令。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-05
      • 1970-01-01
      • 2011-01-25
      相关资源
      最近更新 更多