WordPress Yoast SEO插件保存/更新后问题

时间:2017-10-05 作者:jypweb

The Problem

每当Yoast Premium SEO插件处于活动状态时,帖子都无法在管理菜单中正确保存/更新。点击更新按钮后,我发现帖子中的所有自定义主题短代码都被渲染(没有CSS),而不是返回到帖子编辑器。启用调试器后,我收到如下错误:

Cannot modify header information – headers already sent by (some/file.php)

1 个回复
最合适的回答,由SO网友:jypweb 整理而成

The Solution

经过比我所关心的更多的研究,最终没有得到一个直接的答案,我开始意识到我用来创建HTML的自定义快捷码可能是罪魁祸首。我通过关闭<?php 标记并在html完成后重新打开它。事实证明,我应该使用输出缓冲区ob_start()/ob_get_clean() 并返回代码。

之前:

if (argument > 0) { ?> <p>Some text</p> <?php }

之后:

if (argument > 0) { ob_start(); ?> <p>Some text</p> <?php return ob_get_clean(); }

这将返回缓冲的HTML,并允许在短代码上正确进行任何筛选或回显。一旦做出了这一改变,Yoast(和其他几个像Relevansi一样的人)开始按照他们的预期工作。

现在,由于其他原因,您可能会遇到相同的调试错误,但在本例中,这归结为我的自定义主题没有正确生成短代码。

结束

相关推荐

Primary menu shortcode name

我有一个快捷码,可以将菜单放在我想要的地方,但它只在主菜单上起作用。我不想对主菜单使用快捷键,我想创建一个名为shortcodemenu的新菜单,并在使用时让快捷键调用它。function print_menu_shortcode($atts, $content = null) { extract(shortcode_atts(array( \'name\' => null, \'class\' => null ), $atts)); return wp_nav_menu( a