折腾比较高定制的主题时会遇到这类需求:获取某个页面的链接,这个很简单,因为 WordPress 内置了 get_page_link() 函数,你只要<?phpget_page_link(页面id); ?> 这样就行了。
问题:页面id获取的问题,因为很多博客用的是用文章名作为永久链接的,查询页面的id就比较麻烦,当然对于WP熟手来说很简单——后台页面管理里的编辑链接就有。可惜很多用户会觉得很麻烦,觉得直接填页面名或者别名比较方便。
分析:记得分类就有根据分类名称(不是别名slug)获取分类id的函数,此函数是 get_cat_ID(分类名称) ,但我翻遍了整个 WordPress code 文档(又夸张了)都没有找到根据页面名称或者别名(slug)获取页面id的函数,郁闷鸟,或许 WP 官方认为此类需求又是个蛋疼的需求。
解决:既然没有,那么就要自己写了,用啥?当然是 SQL
函数代码:根据页面别名(slug)获取页面id(添加到主题的 functions.php)
1
2
3
4
5
|
function
get_page_id(
$page_name
){
global
$wpdb
;
$page_name
=
$wpdb
->get_var(
"SELECT ID FROM $wpdb->posts WHERE post_name = '"
.
$page_name
.
"' AND post_status = 'publish' AND post_type = 'page'"
);
return
$page_name
;
}
|
使用方法:
1
|
<?php get_page_id(页面别名); ?>
|
本文转自:ZWWoOoOo