我们已经购买了一个wordpress主题(Zerif Pro),到目前为止我并没有对它印象深刻。我们的团队需要添加相当多的hackery来使网站正常运行,因为主题是脆弱的,硬编码设置应该是可配置的并且滥用Wordpress的一些功能(理想情况下我们会抛出这个主题并抵制未来主题的Themeisle但是我们现在已经对网站走得太远了。)
它滥用的一个问题是静态首页。这个主题确实构建了一个静态的首页,但是在“最新帖子”页面之上这样做,而不是像Wordpress所期望的那样正确地进行。这意味着当我们在Wordpress设置中选择“首页显示静态页面”选项时,它会破坏主题。出于这个原因,我们保持主页不变,并创建了一个虚拟页面,以包含最新的帖子。
然而现在的问题是,主页虽然是封面,但仍然以某种方式认为它是一个博客页面,这导致了一些其他问题(如“分享此帖子”链接出现在其上,我们' (通过css隐藏)以及最近不正确的OpenGraph信息,这就是这个问题的关键。
填充到封面页面中的元数据(实际上是由主题错误地设置为封面页面的最新帖子页面)与我们最新帖子的元数据相匹配。我假设它是由wp_head()
生成的,但找不到这个元数据的来源(主题似乎没有覆盖wp_head()
而我们没有使用任何SEO插件注入og
元数据)。在这一点上,这是我正在考虑的解决方案:
有人可以建议如何解决问题(如果你有一个比我上面提到的4更好的解决方案或任何一个4的指导,我会很感激)。如果它有帮助,这里是所有当前安装的插件:
答案 0 :(得分:1)
如果没有Jevuska的帮助,这个答案是不可能的,他的评论解释了如何获得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
项的哈希的巨大转储,这些项显示为键/值对,其中键是名称,值是包含更多数据的数组:{{ 1}}
收集所有密钥并按照以下格式将每个条目插入到functions.php中:[wp_oembed_add_discovery_links] => Array
,我总共有大约20个条目,我还从步骤1中删除了该函数。
重新加载页面并观察到remove_action('wp_head', 'wp_oembed_add_discovery_links')
元数据已消失,og
元素中的许多其他内容也消失了。为了快速缩小到违规元素,我使用了二分搜索,删除了一半的元素并查看它是否有效果。在4次迭代中,我找到了罪魁祸首:<head>
在functions.php中保留fifu_add_social_tags
逻辑,以防止remove_action('wp_head', 'fifu_add_social_tags');
标记呈现,删除所有其他行。