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一样的人)开始按照他们的预期工作。
现在,由于其他原因,您可能会遇到相同的调试错误,但在本例中,这归结为我的自定义主题没有正确生成短代码。