【问题标题】:Trying To Create Dynamic Titles Via PHP尝试通过 PHP 创建动态标题
【发布时间】:2019-03-27 18:38:53
【问题描述】:

我希望通过用户输入创建动态标题。我们是一个金融网站,我们有一个报价功能,用户可以输入一个股票代码,它会显示公司的财务信息。该页面运行良好,但我在为 SEO 目的和避免重复的标题上苦苦挣扎。

我创建了一个名为“quote”的 PHP 模板,如果用户输入股票查询,就会执行该模板。这是我必须生成标题的代码:

<title><?php if(isset($_GET['qm_symbol'])){
        $qm_symbol = $_GET['qm_symbol'];
    }
    if (is_page('quote') ) {
          echo $qm_symbol.'- Stock Quote & Stock News For '.$qm_symbol;
    }
?>
</title>

所以,这很好用。它会根据需要生成标题,并且不会在没有输入任何内容的博客文章中显示任何内容。但是,因为我有 PHP 之外的 html,它仍然会生成一个空白标题标签,然后在它下面是我的主题生成的实际页面标题标签。

出于 SEO 的目的,我想弄清楚如何对其进行编码,这样如果没有用户输入,它也不会输出任何标题标签。对此有什么帮助吗?我想这是一个简单的解决方案,但我只是在努力将 html 集成到 PHP 中。我想我不能引用 echo 语句,因为它需要变量,即股票代码。

【问题讨论】:

    标签: php wordpress page-title


    【解决方案1】:
    //At the top of your page
    $pageTitle = (isset($_GET['qm_symbol'])) ? $_GET['qm_symbol'] . " - whatever here" : "default title";
    
    //In your head tag
    <title><?= $pageTitle ?> </title>
    

    做这样的事情。

    【讨论】:

    • 在没有请求符号的情况下,这不是仍然会将空的标题标签放在其他页面的头部吗?
    • 不,它会用你的默认标题替换它们,你应该把它放在它说默认标题的地方。
    • 是的,基本上我遇到的问题是标题重复。因为我会从您的代码中显示默认标题,然后是 Genesis 的标题。我试图弄清楚如何修改 Genesis 的标题输出以将其更改为我的代码,但我终其一生都无法弄清楚,而且他们对此类内容的支持基本上也不存在。
    • 您必须在此使用htmlentities(),否则您将面临 XSS 跨站点脚本攻击。攻击者需要做的就是使用此功能在指向您网站的链接中添加一些 JavaScript,然后将其注入您的页面。 $pageTitle = (isset($_GET['qm_symbol'])) ? htmlentities($_GET['qm_symbol'], ENT_QUOTES, "UTF-8") . " - whatever here" : "default title"; - 添加它,然后你就会得到我的祝福...... :-)
    • 这是一篇关于安全堆栈交换的帖子:security.stackexchange.com/questions/140433/…
    猜你喜欢
    • 1970-01-01
    • 2014-05-27
    • 2017-01-15
    • 2019-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多