Attachment.php与single.php上的_content()行为

时间:2014-10-10 作者:funwhilelost

我有点麻烦the_content() 处理附件。php。我有一个包含基本循环和简单调用的模板页面the_content() 在循环中显示帖子。

场景1用模板文件加载附件页single.php 它将输出图像标签并运行它prepend_attachment.

场景2用模板文件加载附件页attachment.php 它不会从the_content(). 我还验证了它没有调用prepend\\u附件或\\u内容过滤器。

有人能解释一下这是怎么回事吗?

<?php
if (have_posts()) : while (have_posts()) : the_post();
  the_content();
endwhile; endif;
?>

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

这是正确的行为,如果你的附件中没有任何内容post_content 字段(这很常见)。

当以后期为中心的模板运行时,prepend_attachment() 用作“模拟”帖子内容的过滤器。附件的“预期”模板并非如此。

如果你看template-loader.php:

elseif ( is_attachment()     && $template = get_attachment_template()     ) :
    remove_filter(\'the_content\', \'prepend_attachment\');
过滤器已显式删除。

因此,不会为您生成“虚假”内容。您必须决定并在代码中表达您实际想要为附件显示什么,或者如果您想要的是过滤器,则只需添加回过滤器。

结束

相关推荐

how to edit attachments?

在将例如文件附加到帖子时,如何在事后编辑/删除它们?在帖子编辑器中找不到任何内容。谢谢