首页 文章

覆盖Wordpress OpenGraph元数据和/或wp_head

提问于
浏览
1

我们已经购买了一个wordpress主题(Zerif Pro),到目前为止我还没有给它留下深刻的印象 . 我们的团队需要添加相当多的hackery来使网站正常运行,因为主题是脆弱的,硬编码设置应该是可配置的并且滥用Wordpress的一些功能(理想情况下我们会抛出这个主题并抵制未来主题的Themeisle但是我们现在已经对网站走得太远了) .

它滥用的一个问题是静态首页 . 这个主题确实构建了一个静态的首页,但是在“最新帖子”页面之上这样做,而不是像Wordpress所期望的那样正确地进行 . 这意味着当我们在Wordpress设置中选择“首页显示静态页面”选项时,它会破坏主题 . 出于这个原因,我们保持主页不变,并创建了一个虚拟页面来代替最新的帖子 .

然而,现在的问题是主页虽然是一个封面,但仍然以某种方式认为它是一个博客页面,这导致了一些其他问题(如“分享这个帖子”链接出现在它上面,我们隐藏了css)以及最近不正确的OpenGraph信息,这就是这个问题的内容 .

填充到封面页面中的元数据(实际上是由主题错误地设置为封面页面的最新帖子页面)与我们最新帖子的元数据相匹配 . 我'm assuming it'由 wp_head() 生成,但找不到这个元数据的来源(主题似乎没有覆盖 wp_head() ,我们没有使用任何会插入 og 元数据的SEO插件) . 在这一点上,这是我正在考虑的解决方案:

  • 覆盖wp_head()以排除这些数据(我不熟悉这样做的逻辑)

  • 让WP平台以某种方式知道主页不是博客文章(这样可以防止从最新博客帖子中提取不相关的OpenGraph数据,再次我不知道该怎么做)

  • 调整主题,将其"static"内容注入不同的页面而不是默认的最新帖子页面,我们可以通过插件控制元数据(再次,不知道这个逻辑在哪里或者这个主题是否合作)

  • 查找填充OpenGraph元数据的位置并覆盖它

有人可以建议如何解决问题(如果你有一个比我上面提到的4更好的解决方案或任何一个4的任何指导,我会很感激) . 如果有帮助,这里是所有当前安装的插件:

  • 联系表格到电子邮件

  • Easy Twitter Feed Widget

  • 来自网址的特色图片

  • 适用于WP的Google Analytics信息中心

  • 页面中的帖子

  • SendGrid

  • 简单自定义CSS

  • Supsystic的社交分享按钮

  • TC自定义JavaScript

  • Typecase

  • Widget Wrangler

  • WP客户端徽标轮播

  • WPide

1 回答

  • 1

    这个答案不会得到帮助,他的评论解释了如何获取 wp_head 的内容,这是我之前完全无能为力的 . 这些步骤可用于从 wp_head 中删除任何不需要的逻辑,而不仅仅是困扰我的 og 逻辑 . 以下是我为解决此问题所做的工作:

    • 根据Jevuska的建议,将以下代码添加到functions.php中:
    add_action( 'wp', function () {
        global $wp_filter;
        if ( isset( $wp_filter['wp_head'] ) ) {
            echo '<pre>';
            print_r($wp_filter['wp_head']);
            echo '</pre>';
        }
    } );
    
    • 重新加载页面以查看包含各种 wp_head 项目的哈希的巨型转储,这些项目显示为键/值对,其中键是名称,值是具有更多数据的数组: [wp_oembed_add_discovery_links] => Array

    • 收集所有密钥并按照以下格式将每个条目插入functions.php: remove_action('wp_head', 'wp_oembed_add_discovery_links') ,我总共有大约20个条目,我也从步骤1中删除了该函数 .

    • 重新加载页面并观察到 og 元数据消失了,所以 <head> 元素中还有很多其他内容 . 为了快速缩小到违规元素,我使用了二分搜索,删除了一半的元素并查看它是否有效果 . 在4次迭代中,我找到了罪魁祸首: fifu_add_social_tags

    • 在functions.php中保留 remove_action('wp_head', 'fifu_add_social_tags'); 逻辑以防止 og 标记呈现,删除所有其他行 .

相关问题