Old

WordPress函数: 根据页面别名获取页面ID

折腾比较高定制的主题时会遇到这类需求:获取某个页面的链接,这个很简单,因为 WordPress 内置了 get_page_link() 函数,你只要<?php get_page_link(页面id); ?> 这样就行了。

问题:页面id获取的问题,因为很多博客用的是用文章名作为永久链接的,查询页面的id就比较麻烦,当然对于WP熟手来说很简单——后台页面管理里的编辑链接就有。可惜很多用户会觉得很麻烦,觉得直接填页面名或者别名比较方便。

分析:记得分类就有根据分类名称(不是别名slug)获取分类id的函数,此函数是 get_cat_ID(分类名称) ,但我翻遍了整个 WordPress code 文档(又夸张了)都没有找到根据页面名称或者别名(slug)获取页面id的函数,郁闷鸟,或许 WP 官方认为此类需求又是个蛋疼的需求。

解决:既然没有,那么就要自己写了,用啥?当然是 SQL

函数代码:根据页面别名(slug)获取页面id(添加到主题的 functions.php)

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;
}

使用方法<?php get_page_id(页面别名); ?>

唉,又是用 SQL,直接填 id 就不需要这么折腾了。

zww
or
oooo

声明: 除非注明,ZWWoOoOo文章均为原创,转载请以链接形式标明本文地址
本文地址: http://zww.me/archives/25369

86 comments

  1. Veezy Veezy Google Chrome 10.0.612.3 Google Chrome 10.0.612.3 Windows 7 Windows 7

    sf :mrgreen:

    沙发
  2. Veezy Veezy Google Chrome 10.0.612.3 Google Chrome 10.0.612.3 Windows 7 Windows 7

    :evil:
    貌似用不上,折腾zsons css ing...

    板凳
  3. Veezy Veezy Google Chrome 10.0.612.3 Google Chrome 10.0.612.3 Windows 7 Windows 7

    @Veezy
    貌似是今年最后一个 :?:

  4. ......
  5. 秦大少 秦大少 Sogou Explorer Sogou Explorer Windows 7 Windows 7

    元旦快乐,心想事成!

    21楼
  6. hensy hensy Google Chrome 5.0.375.86 Google Chrome 5.0.375.86 Windows XP Windows XP

    2011了哦!元旦快乐!新的一年心想事成!

    22楼
  7. 韩国 韩国 Google Chrome 6.0.472.63 Google Chrome 6.0.472.63 Windows XP Windows XP

    到博主这里报个到,加个班,新年快乐。

    23楼
  8. 爪印 爪印 Firefox 3.6.13 Firefox 3.6.13 Windows XP Windows XP

    不错,学习了

    24楼
  9. 小付博客 小付博客 Internet Explorer 6.0 Internet Explorer 6.0 Windows XP Windows XP

    不错!学习了!新年快乐!

    25楼
  10. Max.L Max.L Google Chrome 8.0.552.224 Google Chrome 8.0.552.224 Windows 7 Windows 7

    元旦快乐哈~

    26楼
  11. Junan Junan Internet Explorer 8.0 Internet Explorer 8.0 Windows XP Windows XP

    :oops: 博主 你好~~请问你的文章的第一个字设置这么大~~是怎样 搞的?

    27楼
  12. Kars Kars Namoroka 3.6.13 Namoroka 3.6.13 Windows XP Windows XP

    又是 SQL 、、能避免就尽量不用吧、、

    28楼
  13. 哲哲 哲哲 Firefox 3.6.13 Firefox 3.6.13 Windows 7 Windows 7

    元旦快乐·新年快乐哦·

    29楼
  14. A.shun A.shun Opera 10.70 Opera 10.70 Windows XP Windows XP

    om 元旦快乐啊
    下午评论发不出去- -

    30楼
  15. Alan Alan Firefox 3.6.13 Firefox 3.6.13 Windows XP Windows XP

    Mark!

    31楼
  16. 七七 七七 Internet Explorer 7.0 Internet Explorer 7.0 Windows XP Windows XP

    嗯,关注了解!祝新年快乐!

    32楼
  17. 博客之家 博客之家 Google Chrome 10.0.612.3 Google Chrome 10.0.612.3 Windows XP Windows XP

    这个要学习一下,你的博客我很敬重!

    33楼
  18. 久酷 久酷 Firefox 3.6.10 Firefox 3.6.10 Windows 7 Windows 7

    元旦快乐 :lol: :lol:

    34楼
  19. QVOD QVOD Internet Explorer 8.0 Internet Explorer 8.0 Windows 7 Windows 7

    又是教程呀。

    35楼
  20. Armgod Armgod Firefox 3.6.13 Firefox 3.6.13 Windows 7 Windows 7

    你博客速度快得让人愤怒!

    36楼
  21. 博客之家 博客之家 Google Chrome 10.0.612.3 Google Chrome 10.0.612.3 Windows XP Windows XP

    懒啊,你真懒!

    37楼
  22. 杜彬的博客 杜彬的博客 Internet Explorer 8.0 Internet Explorer 8.0 Windows XP Windows XP

    没有看懂

    38楼
  23. 随意博客 随意博客 Google Chrome 21.0.1180.71 Google Chrome 21.0.1180.71 Windows 7 Windows 7

    :mrgreen: 学习了,特殊情况下会有需要!

    39楼

Leave a Reply