wordpress根据页面别名获取该页面的链接

在 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

相关推荐
俩个逗号。。6 小时前
修改Android resource dimens大小之后不生效
android
2501_915918416 小时前
在 iOS 环境下查看 App 详细信息与文件目录
android·ios·小程序·https·uni-app·iphone·webview
落羽的落羽6 小时前
【Linux系统】从零实现一个简易的shell!
android·java·linux·服务器·c++·人工智能·机器学习
常利兵7 小时前
Android Gradle 构建脚本现代化:Kotlin DSL (.kts) 与 Groovy DSL 深度对比与实战指南
android·开发语言·kotlin
TheNextByte17 小时前
如何在PC和Android平板之间传输文件
android·gitee·电脑
Greenland_127 小时前
Android 混淆与混淆后bug日志问题定位
android·bug
baidu_247438617 小时前
Android kotlin 定时n秒完成时回调,含暂停和继续
android·kotlin
2501_937189237 小时前
TV 电视影视大全:全场景高清观影技术解析
android·源码·源代码管理
2501_937154937 小时前
TV 电视影视大全:全场景高清观影技术解析
android·源码·源代码管理·机顶盒
峥嵘life7 小时前
Android16 【GSI】CtsMediaCodecTestCases等一些列Media测试存在Failed项
android·linux·运维·服务器·学习