在 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 做兼容;否则上述代码依旧适用。
原文
https://www.wpniu.com/article/6682.html