短而甜—我想发表一篇文章的摘录来代替the_content
在某些页面上。当然,如果没有摘录,就会从内容中生成一个摘录。我知道我可以直接进去编辑主题文件,但我想要一种侵入性较小的方法。
看看下面的工作原理:
add_action( \'the_content\', \'myFunc\' );
function myFunc ( $content ) {
the_title();
}
我想我会试试这个add_action( \'the_content\', \'myFunc\' );
function myFunc ( $content ) {
the_excerpt();
}
这个。失败。光荣地。实际上,这会导致致命错误:致命错误:已达到最大函数嵌套级别“100”,正在中止!在C:\\WAMP\\WWW\\WORDPRESS\\WP-INCLUDES\\POST中。PHP在线555
接下来是一个巨大的调用堆栈,它似乎被设置为疯狂的递归调用。
Turning the Tables
所以这引起了我的好奇,我尝试了相反的方法。传送the_content
代替the_excerpt
:add_action( \'the_excerpt\', \'myFunc\' );
function myFunc ( $content ) {
the_content();
}
令我惊讶的是,这一切都很好。所以我想说的是the_excerpt
呼叫the_content
, 但是the_content
不打电话the_excerpt
- 这当然可以解释这样一个事实,即它是以一种方式工作的,但另一种方式似乎是以大量的递归方式启动的。由于不太熟悉这两个函数的内部工作原理,我很好奇这里的社区能提供什么样的见解。上钩有什么问题the_content
和呼叫the_excerpt
?
如果不是通过调用the_content
直接地我知道我可以提供自己的自定义摘录逻辑,但这将使我的站点中的摘录逻辑非规范化,这意味着我将通过函数中的自定义代码创建一些摘录。php和其他通过WordPress内部方法创建的方法-理想情况下,我会避免这种情况,如果可能的话,只使用内部方法。