2010-11-02 33 views
32

如何从固定链接(漂亮的网址)获得帖子ID?如何从固定链接(漂亮的网址)获得帖子ID?

+1

@Yuliy:这可能是这里最好的答案;我建议你让它成为一个真正的答案,而不仅仅是一个评论。 :) – bcat 2010-11-02 05:15:01

+0

@Yuliy我没找到,你能帮忙吗? – 2010-11-02 05:24:58

+1

@Jaffaff Gilbert - 你能解释一下你正在努力实现的目标吗?有几个“正确的”答案,但每个答案都不相同,每个答案都取决于你的情况和你想要达到的目标。顺便说一句,你可能想在SO的姊妹网站WordPress Answers上发布这个问题:http://wordpress.stackexchange.com。 – MikeSchinkel 2010-11-02 09:00:33

回答

47

你应该没问题,url_to_postid() [see documentation]位于rewrite.php。去年我在一个插件中使用它,就像一个魅力。

+0

是的,谢谢你的队友! – 2010-11-02 13:02:16

+6

好吧。至少现在记录下来。 http://codex.wordpress.org/Function_Reference/url_to_postid – vmassuchetto 2012-04-11 11:27:56

+4

您还应该注意文档提到:“请注意,这不会返回自定义帖子类型的帖子ID。” – Ash 2012-11-11 12:47:29

7

我有一个专用的(&记录)函数,该函数:

get_page_by_path($page_path, $output, $post_type); 

检索页面给予其路径。

哪里$page_path

[...]的 '页面名称' 查询的等价,如: 'index.php的页面名=父页/子页'。

Function Reference/get page by path

例子:

// Assume 'my_permalink' is a post. 
// But all types are supported: post, page, attachment, custom post type, etc. 
// See http://codex.wordpress.org/Post_Types 
get_page_by_path('my_permalink', OBJECT, 'post'); 
+0

但是对帖子不起作用... – Jake 2013-03-09 17:13:13

+1

你只需要定义帖子类型(参见'$ post_type'参数:http://codex.wordpress.org/Post_Types) – mems 2013-03-28 00:19:25

+0

你应该编辑它。你的答案是最好的一个,现在他们已经添加了对custom_post_types和帖子的支持或者至少记录了它......这是我自己使用的解决方案。谢谢。 – Jake 2013-03-29 17:09:05

9

This作品定期岗位类型和自定义后的类型。 url_to_postid()只适用于普通帖子。

+1

请添加更多,然后单词“this”下的链接来描述链接后面的内容。 – 2015-07-11 06:21:11

1

url_to_postid()截止3.7.0:此功能现在支持自定义帖子类型(请参见Trac门票#19744,#25659)。

0

你可以试试这个也:

$post = get_page_by_path('cat',OBJECT,'animal'); 

猫是你正在寻找的=永久的一个;动物是自定义后的类型,

0

请使用

$postid = url_to_postid($url); 

以检索附件的ID。

要求提供的网址格式为example.com/?attachment_id=N,并且不能使用完整网址从完整网址获取标识。