【发布时间】:2010-08-10 15:47:25
【问题描述】:
我正在开发一个修改帖子标题的 wordpress 插件。我只想在查看单个帖子时执行此操作。具体来说,我想在标题旁边添加一个链接,但出于问题的目的,我将添加一些任意文本。
我开始使用“the_title”过滤钩子,然后调用这个函数。
function add_button_to_title($title)
{
global $post;
if(is_single())
{
return $title.'googly googly';
}
return $title;
}
问题是,侧边栏上的链接显然也使用了“the_title”,因为我看到我的文本也出现在侧边栏中,这导致我:
if(is_single() && in_the_loop())
但是,在我的主题中(我想是一般的主题)有一个指向上一篇文章和下一篇文章的链接,它也使用“标题”过滤器。所以最后我有:
if(is_single() && in_the_loop() && ($post->post_title == $title))
最后一个条件基本上确保它是正在打印的帖子的标题,而不是下一个或上一个帖子的标题。这行得通,但我不确定考虑到不同的主题它会如何运作......它似乎非常糟糕。 wordpress 大师有什么建议吗?我担心标题会因为其他原因被修改,条件会失败。
感谢任何帮助!
【问题讨论】:
-
也许比较帖子ID更安全(作为第二个参数传递给
the_title过滤器。如果在修改标题之前有另一个过滤器,我认为传递的标题可能与帖子数据库不匹配标题,这会使您的测试失败。那么比较 ID 会更安全。 -
嗨,一月,如果我能找出哪个钩子负责输出 id,这将是一个很好的解决方案。输出标题时,会调用“the_title()”过滤器。 id 有类似的吗?
标签: wordpress