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 Google Chrome 10 Windows 7 Windows 7

    sf :mrgreen:

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

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

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

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

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

    元旦快乐,心想事成!

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

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

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

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

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

    不错,学习了

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

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

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

    元旦快乐哈~

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

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

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

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

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

    元旦快乐·新年快乐哦·

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

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

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

    Mark!

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

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

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

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

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

    元旦快乐 :lol: :lol:

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

    又是教程呀。

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

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

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

    懒啊,你真懒!

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

    没有看懂

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

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

    39楼

Leave a Reply