最后更新时间为 2018年7月18日
get_permalink() 用来根据固定连接返回文章或者页面的链接。在获取链接时 get_permalink() 函数需要知道要获取的文章的 ID,如果在循环中则自动默认使用当前文章。 如果文章ID正确,那么将返回该ID文章的URL,如果文章不存在,那么将返回False,在Plugin或者Theme中,他可以被setup_theme动作使用,任何先前的使用,引入plugins_loaded将产生一个致命的错误。请注意,当一个文章页面循环之外使用(例如index、achive)没有ID参数,它将返回的最后一文章的URL,但是可能并不是当前页的永久链接。
用法
get_permalink( $id, $leavename );
参数
$id
(混合)(可选)文章或者页面的 ID(整数);还可以是文章对象。
默认值:在循环中自动调用当前的文章
$leavename
(布尔)(可选)转化成链接是是否忽略文章别名。如果设置成 True,那么将返回 http://www.example.com/%postname% 而不是 http://www.example.com/my-post-name
默认值:None
返回值
(字符串 | 布尔)成功获取链接则返回链接,失败则返回 False.
例子
1、默认用法
获取当前文档的永久链接(在循环中使用),作为标签不显示permalink,该示例使用PHP的echo命令。
<?php echo get_permalink();?>
2、根据 ID 获取文章或页面的链接:
<a href=”<?php echo get_permalink( 268 ); ?>”>获取指定 ID 的文章或页面链接</a>
3、循环中获取当前文章的链接:
<?php echo get_permalink(); ?>
4、根据页面标题获取页面链接:
<a href=”<?php echo esc_url( get_permalink( get_page_by_title( ‘留言板’ ) ) ); ?>”>留言板</a>
5、获取特殊页面的URL
返回Post ID为1和10的文章永久链接,作为列表信息的一部分项目。
<ul>
<li><?php esc_html_e( ‘MyBlog info:’, ‘textdomain’ ); ?>
<ul>
<li><a href=”<?php echo esc_url( get_permalink(1) ); ?>”><?php esc_html_e( ‘About MyBlog’, ‘textdomain’ ); ?></a></li>
<li><a href=”<?php echo esc_url( get_permalink(10) ); ?>”><?php esc_html_e( ‘About the owner’, ‘textdomain’ ); ?></a></li>
</ul>
</li>
</ul>
6、通过Post对象而不是Post的ID
这说明你可以用代替的ID页面标题获得永久链接。
<a href=”<?php echo esc_url( get_permalink( get_page_by_title( ‘Monthly Events’ ) ) ); ?>”>
<?php esc_html_e( ‘Monthly Events’, ‘textdomain’ ); ?>
</a>
源文件
此函数位于:wp-includes/link-template.php