首页 文章

Wordpress / Theme / Plugins生成<head>后动态替换<title>?

提问于
浏览
0

好吧,我一直在做很多挖掘并尝试提出最佳解决方案,并且真的希望在这个问题上提供一些见解和帮助 .

问题:我的网站有一个WordPress /主题/插件组合集,效果很好 . 在WordPress,主题和SEO插件之类的插件之间,网站的 Headers 生成中有很多事情正在发生 .

我有一个模板页面,我希望能够动态更改 Headers . 我不想搞乱整个网站,只是这个模板页面,所以它将显示: dynamic item name " Item Details"为 Headers . 我想也可能也替换元描述,但我应该能够使用与 Headers 相同的方法,所以现在让我们关注 .

示例页面:http://www.ddmsrealm.com/dungeons-and-dragons-database/item-info/?ddoRareItemID=2507&ddoQuestID=352&ddoSeriesID=39 - 具有通用页面 Headers .

模板页面中有一个函数可以获取和构建 Headers . 在这之后我可能需要放入代码来替换已经生成的标签 .

所以问题是如何改变它?

你能用PHP替换生成的标签吗?这可以通过功能来完成吗?这个改变是针对搜索引擎优化,所以我认为由于搜索引擎没有执行JavaScript,Javascript会起作用 . 自定义字段会成为解决方案吗?

我想影响这个模板 . 我需要它为SEO . 我不认为我可以在主题或插件级别执行此操作,因为我只想修改这一页,其余的生成就好了 .

非常感谢您的帮助和见解 .

3 回答

  • 0

    在调用 get_header() 之前尝试挂钩wp_title过滤器 .

    <?php 
    add_filter( 'wp_title', 'my_tpl_wp_title', 100 );
    function my_tpl_wp_title($title) {
        $title = 'My new cool title';
    
        return $title;
    }
    ?>
    

    Edit:) 我看到Yoast插件确实篡改了我的解决方案:)

    幸运的是,这是一个简单的解决方案 . Yoast wp_title 钩子的优先级为15,所以只需在 wp_title 函数上设置一个更高的数字 . 看到我更新的答案 .

    Yoast Headers 过滤器供参考

    add_filter( 'wp_title', array( $this, 'title' ), 15, 3 );
    
  • 2

    这是这个问题的最终工作代码 . 以上回复对于使代码非常接近有很大帮助 . 由于这是在页面/脚本之间传递信息,因此需要一个全局变量 .

    $ddmsrealmitemname = $row_rsMainItemListing['Name'];
    
    add_filter( 'wp_title', 'my_ddmseo_wp_title', 100);
    function my_ddmseo_wp_title($title) {
        global $ddmsrealmitemname;
        $title = "{$ddmsrealmitemname} | Item Details | Dungeons and Dragons Online";
        return $title;
    }
    

    此脚本现在扫描已在记录集中选择的当前项目,并将其传递给SEO插件 Headers 生成 .

    这似乎运作良好,并且是出于搜索引擎优化的原因,但似乎谷歌仍未对这些网页编制索引 . 无论如何,这是一个很好的小技巧,可以覆盖动态页面项目上的默认 Headers 生成 .

  • 0

    如果您碰巧使用像我这样的Yoast SEO插件,这最终对我有用 .

    function change_yoast_page_titles($title)
    {
      global $pagename;
      $new_title=$title;
      if ($pagename=='widget')
      {
        global $widget_name;
        if (isset($widget_name))
            $new_title=$widget_name." | ".get_bloginfo('name'); 
      }
      return $new_title;
    }
    
    add_filter('wpseo_title','change_yoast__page_titles',100);
    

    信用到这里:Overriding Yoast SEO Plugin Page Title and META Description

相关问题