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

» 2010-12-31 86条评论

折腾比较高定制的主题时会遇到这类需求:获取某个页面的链接,这个很简单,因为 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

“WordPress函数: 根据页面别名获取页面ID”有86条评论

    1. Veezy says:

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

    2. Veezy says:

      @Veezy
      测试@评论,我发现在侧边栏最新评论有@会失效诶

    3. Veezy says:

      @Veezy
      :cry: 发现是我的问题
      试了一下a-shun的侧边栏也有这个问题
      求解决办法 哈哈

    4. zwwooooo says:

      @Veezy
      神马情况?

    5. Veezy says:

      @zwwooooo
      就是在评论里如果回复别人出现"@XXX"的话,那么侧边栏最新评论的那个连接就无法连接到文章的评论部分.下午折腾了一下,技术不够- -弄乱了,又换成原来的了.

    6. zwwooooo says:

      @Veezy
      不是这个问题,是链接问题,因为你有翻页,而默认的最新评论代码是生成没有分页的链接,如果你的链接不在当前页,那么链接就到达不到了,最新评论里面有个注释说明,你看看。

    7. Veezy says:

      @zwwooooo
      哦,懂了,我说呢,从根链接直接就到评论层数了
      那我把留言名设成链接好了~
      谢了哈哈 元旦快乐 :mrgreen:

    8. zwwooooo says:

      @Veezy
      元旦快乐!

  1. Veezy says:

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

    1. zwwooooo says:

      @Veezy
      一般都用不到

  2. akasuna says:

    什么样的需求,需要用到 ID 呢

    1. zwwooooo says:

      @akasuna
      这个比较蛋疼,很少地方需要,但总是有人需要

  3. ifenwen says:

    高折腾啊 用不上

    1. zwwooooo says:

      @ifenwen
      的确很少人会用到

  4. hzlzh says:

    看到你那个 GIF 啦,做的挺带感啊

    1. zwwooooo says:

      @hzlzh
      因为以前我做过的gif总是很快给人CP走,然后我来个狠的,现在不怕CP了,而且荒淫CP使用 :mrgreen:

  5. 不羡鱼 says:

    还没有想好,什么功能要用到页面ID :?:

    1. zwwooooo says:

      @不羡鱼
      接触多了不同客户就能遇到了

  6. 爱惜 says:

    高折腾,简单解决啊。我还没有想到要用什么页面合适。

    1. zwwooooo says:

      @爱惜
      哈哈,这个一般博客很少用到

  7. 我每次都是打开这个页面看

  8. mice says:

    原来是反过来...

    1. zwwooooo says:

      @mice
      对啊,非常蛋疼

  9. 有点蓝 says:

    客户真是什么样的需求都会有哈

    1. zwwooooo says:

      @有点蓝
      真的是,通常为了客户方便比较蛋疼

  10. 羽中 says:

    这个是有点绕。。

    1. zwwooooo says:

      @羽中
      所以说蛋疼

  11. Armgod says:

    发现这个文章的评论很诡异,貌似出问题了

    1. zwwooooo says:

      @Armgod
      没啥问题啊,如果你发觉很快,就说明是正常。

    2. Armgod says:

      @zwwooooo
      新年好哈。我当时在主页看不见这个文章,是在评论栏里点别人的留言进入的,所以说诡异。

    3. zwwooooo says:

      @Armgod
      新年好!这么诧异?你一个人遇到就不是问题鸟 :mrgreen:

  12. MOPVHS says:

    逆向....

    1. zwwooooo says:

      @MOPVHS
      对,所以蛋疼

  13. 卢松松 says:

    都年底了 还是折腾函数呢?元旦好好休息下吧

    1. zwwooooo says:

      @卢松松
      我天天都可以休息。

  14. 竹下无为梦 says:

    元旦快乐啊。

  15. 囧啊囧 says:

    看不懂代码,祝你元旦快乐吧

    1. zwwooooo says:

      @囧啊囧
      元旦快乐!

  16. 瓜瓜 says:

    在别忙了啊,元旦快乐,新年快乐~

    1. zwwooooo says:

      @瓜瓜
      嗯嗯,新年快乐!

  17. 优趣 says:

    2011即将开始,祝博主,新年快乐,神马奔腾!

  18. 苏扬 says:

    年终居然没写总结 哈哈 不愧是折腾达人!

    1. zwwooooo says:

      @苏扬
      我都不写的,写来干啥呢?元旦快乐!

  19. 踏浪者 says:

    新年第一天,来支持你一下

    1. zwwooooo says:

      @踏浪者
      元旦快乐!

发表评论

昵称 *

网址

B em del U Link Code Quote