page url in shortcode

时间:2012-05-18 作者:Kaiser

我有个问题。

我正在使用自定义的快捷码来获取url。如果短代码在帖子中,那么它将获取帖子url。当我在分类列表中打开帖子时,这个帖子的快捷码工作正常。

extract(shortcode_atts(array(
    \'gurl\'  => get_permalink(),
), $atts));
但当我尝试在小部件文本中添加此短代码时,我得到了最后一个帖子url。

请告诉我,当短代码位于小部件中时,我如何获取帖子url。

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

根据页面的查询和循环的构造方式,当您从边栏或页脚访问post对象时,有时会得到循环中的最后一篇文章,而不是页面本身。

您可以通过运行wp_reset_query() 从小部件内部(在访问post对象或运行以当前post为目标的任何函数之前)。

这里有一个警告:确保在您的小部件之后没有任何东西会受到此post重置的影响。

SO网友:David Gard

get_permalink() 如果未指定Post ID,则应在内部使用The Loop.

你可以在外面用The Loop, 但你必须通过身份证(get_permalink($id)).

如何获得该ID取决于您自己,并取决于您的具体情况。

有关更多信息,请参见以下内容-

Function Reference for get_permalink().

  • Codex for The Loop.
  • 结束

    相关推荐

    Allow single quote in URLs

    我有一个WordPress网站Go Daddy 运行Apache的服务器。我的经验是在Windows IIS上,所以这可能是一个简单的问题,但我无法理解。我想在我的网站上允许URL,如:http://my.site.com/biz/Jordan\'s\\U place/约旦/问题有两个方面。1) 如果我进入http://my.site.com/biz/Jordan\'s\\U place/约旦/URL很好,但如果我输入:http://my.site.com/biz/Jordan\'s\\U place/约