get_post_permalink和get_permalink有什么区别?


11

我已经阅读了文档,get_post_permalink()并且get_permalink()不了解两者之间的区别。可能是因为我不了解$leavenameand $sample参数的目的。谁能解释这些,何时一个功能比另一个更有用?谢谢!

Answers:


6

get_post_permalink()功能可按获取的链接,这取决于它的“永久”链接加上您的自定义重写规则改变后?p=123成如my-beautiful-sunday-diary。该get_permalink()功能是更“基本”,但它做什么,以及更灵活:对于post_type

  • page, 它用 get_page_link()
  • attachment, 它用 get_attachment_link()
  • post, 它用 get_post_link()

它还可以处理terms category和日期永久链接的显示。最后,home_url()如果没有分配自定义重写规则,它要么替换您的“ pretty”链接,要么仅返回原始链接。最后,它附加一个通用过滤器:

/**
 * Filters the permalink for a post.
 *
 * Only applies to posts with post_type of 'post'.
 *
 * @since 1.5.0
 *
 * @param string  $permalink The post's permalink.
 * @param WP_Post $post      The post in question.
 * @param bool    $leavename Whether to keep the post name.
 */
return apply_filters( 'post_link', $permalink, $post, $leavename );

希望可以澄清这个话题。

ProTip:如果您需要更改插件中的链接,请在get_attachment_link()get_post_link()等内使用特定的过滤器。仅当您在单个站点上工作且不打算分发代码时,或者正在编写仅针对重写的插件时,的东西,然后使用上面的通用过滤器。否则,您将打击每个主题作者的工作,并开始进行回调优先级竞赛。


2

肯定有人会比我解释得更好。因为我只用get_permalink()

它们大多数都相似,因为它们都返回post永久链接,get_permalink使用get_post_permalink(用于post_types)并且可以过滤。它还将用于检索页面链接,附件... get_post_permalink似乎专用于post_types。

编辑:

关于的使用$leavename,看起来好像不需要前端(甚至在后端)使用,因为它根据链接的发布类型返回了永久结构块。

 echo get_permalink(123, true);

返回链接的重写架构,可以使用

一个帖子:

 http://example.com/%postname%/

一个产品:

 http://example.com/%product%/

$ leavename用于$ rewritecode数组的get_permalink()中,并作为第一个参数放在函数行221中

$permalink = home_url( str_replace($rewritecode, $rewritereplace, $permalink) );

为开发人员的链接发现重写段可能很有用(但我认为有更好的方法可以做到这一点)

希望有人能提供更多细节。


谢谢!我对此仍然不太清楚。您是否曾经使用$ leavename更改永久链接结构?为什么以及如何做到这一点?并且您是说使用get_post_permalink()来检索档案,还是您在这里指的是get_permalink()?直到今天,当我遇到get_post_permalink()时,我从未见过像get_permalink()一样使用它,因此我不清楚其中的区别。
米歇尔

我说的是get_permalink,您可以在源代码中找到它,它可以检索作者页面,类别等...它将做的比get_post_permalink还要多。如果我没有记错的话,Get_permalink是一个模板函数,并且功能强大。
Benoti

可以理解,我只是什么时候才需要或想要使用get_post_permalink()-您能举一个代码示例吗?您知道$ leavename和$ sample做什么吗?我也只使用过get_permalink():-)
Michelle,

2
$leavename用于admin,以获取永久链接结构,以便它可以生成用于编辑帖子的条目的接口。
米洛
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.