使用插件将<div>添加到循环中POST的末尾

时间:2013-04-25 作者:bob_hardy

我想添加一个<div> 在循环中的特定帖子底部添加更多html内容。这个the_post 操作可用于添加<div> 到循环中帖子的开头,但我希望将其添加到结尾。

edit我能做的最接近的事情是使用post_class. 然后我用jQuery(.classname).append(\'<div>custom content</div>) 添加自定义内容。问题是,以这种方式混合jQuery和php似乎不够理想,因为我想将php信息传递给自定义内容。。。

1 个回复
SO网友:s_ha_dum

听起来你需要一个过滤器the_content.

function add_content_wpse_97277($content) {
  global $post;
  if ($post->ID == 123) {
    $content .= \'additional content\';
  }
  return $content;
}
add_filter(\'the_content\',\'add_content_wpse_97277\');
我不知道你需要什么条件。你没有在问题中解释这一点。以上内容应与帖子匹配ID 第123页。

对于索引页,您可能需要将相同的回调添加到the_excerpt 钩您可以使用控制函数添加内容的位置template tags 喜欢is_homeis_single.

老实说,这就是你应该在帖子上方和下方添加内容的方式。从一个动作中回显内容,如the_post 可以工作,但也是让自己陷入麻烦的好方法。在这种情况下,我认为这特别危险。the_post 内部运行setup_postdata 它经常在一个立即回显内容的循环中运行,但如果该函数——setup_postdata-- 在不会立即响应的循环中运行,例如,为了构建字符串,您的标记将造成混乱。还有loop_startloop_end 但我认为这不是你想要的。

看到你的问题和评论并加以考虑后,我不得不说你的基本方法是错误的。您应该使用the_content 以及the_excerpt, 和/或可能get_the_excerpt 还要过滤。

不幸的是,过滤内容/摘录并不能满足我的需要。摘要/内容下方的帖子(循环中)通常会添加div或页脚。这意味着过滤内容/摘录不会使我的内容出现在循环帖子的底部。谢谢,非常感谢您的帮助!

引自以下评论

我怀疑有没有可靠的方法来做你想做的事。我能看到你必须使用的唯一过滤器是the_post. 通过跟踪循环中的哪个帖子并有条件地插入内容,可以使用它在帖子之间插入内容。即:

如果post编号为0,则插入begin<div></div> 和<div>

  • </div>going to make a mess echoing content from the the_post filter 什么时候setup_postdata 在上下文中使用echo 立即生成内容——例如,在正在生成并返回字符串的上下文中。

  • 结束