我将在这里添加数字,使其更加清楚。即使当我读到它时,知道每一个片段的意思,它也可能会在语义上迷失方向。
Your original function 正在呼叫(1)$post->post_content 来自对象,并根据条件,回显函数中返回的内容或内容(2)the_content(), 这只是(1)$post->post_content 完成(3)后get_the_content() 和(2)the_content().
当你看的时候at the source of (3)get_the_content() 您可以看到(1)发生了什么$post->post_content 在达到(2)之前the_content()
Your second function 正在接收(1)$post->post_content after 已完成(3)get_the_content(), 进入(2)the_content() 然后在回显之前对其应用更改。
(4)apply_filters(\'the_content\'... 你正在和你的(5)add_filter(\'the_content\'... 位于line 240 of post-template.php 函数末尾(2)the_content() 调用函数(3)get_the_content() 正在检索的(1)$post->post_content 从当前$post 对象
(看每一件作品时,它的内容、内容、内容听起来都不那么响亮)
对于第二个函数,您需要返回(6)$content 如果希望函数有内容(2)the_content() 显示。在模板中,您只需使用(2)the_content(), 当您的条件被应用时(由(4)apply_filters(\'the_content\'... 就在(2)之前the_content() 返回。
我会添加一个if ( [is_page()][3] && [is_main_query()][3] ) {} 第二个函数中的包装器,所以它不会根据需要应用于非页面循环或子查询。
BUT 在我看来,首先要检查的是修改原来的函数,使其使用(3)get_the_content() 代替(1)$post->post_content 确保您可以在该函数完成它的工作(这就是您现在正在做的)后进行挂钩,而不会丢失预期的结果。
伙计,我希望这很清楚。
查看链接以查看每个链接之间的关系。这真的,真的,有助于理解每一个片段,让你知道你在事件链中的位置,以及你为什么在这里或那里上钩等等。