wordpress根据页面别名获取该页面的链接
11
在 WordPress 里,只要知道页面别名(slug),就可以一行代码拿到对应链接,无需写 SQL:
<?php
// 页面别名
$slug = 'about-us';
// 根据别名获取页面对象
$page = get_page_by_path($slug, OBJECT, 'page');
// 拿到链接
$link = $page ? get_permalink($page) : home_url('/');
echo '<a href="' . esc_url($link) . '">前往页面</a>';
封装成可重用的函数(扔主题 functions.php):
/**
* 根据别名获取页面链接
* wodepress.com
* @param string $slug 页面别名
* @return string 链接(找不到返回首页)
*/
function get_page_link_by_slug($slug) {
$page = get_page_by_path($slug, OBJECT, 'page');
return $page ? get_permalink($page) : home_url('/');
}
模板里调用:
<a href="<?php echo esc_url(get_page_link_by_slug('about-us')); ?>">关于我们</a>
多语言插件(WPML/Polylang)场景
如果站点启用了 WPML,别名可能随语言变化,建议用 页面 ID 或 icl_object_id 做兼容;否则上述代码依旧适用。