模拟WordPress的URL解析以检索帖子ID等的最简单方法?

时间:2012-03-16 作者:Steve Eisner

我很好奇,是否可以在插件/自定义代码中获取当前运行的WordPress站点生成的URL&;解析它以检索$blog\\u id和$post\\u id?

例如,使用类似“myblog.mysite.com/2012/03/16/which/”的字符串,并确定这是blog#2(“myblog”)上的第6篇(“which”)。

我意识到我可能可以剥离URL并自己解析域,但我希望可能会有推荐的WordPress方法公开,以使其在URL格式中更加健壮。

3 个回复
最合适的回答,由SO网友:Viper007Bond 整理而成

正如韦斯顿所提到的,如果你在WordPress中,并且知道URL来自哪个博客,那么向WordPress索要博客ID。

但如果您真的非常确定,在这种情况下,没有比解析URL更好的方法了,那么您可以这样做:

$url = \'http://myblog.mysite.com/2012/03/16/whatever/\';

$domain = parse_url( $url, PHP_URL_HOST );

// This could be dynamic but good enough for now
$subdomain = str_replace( \'.mysite.com\', \'\', $domain );

// Never use $blog_id for anything, you\'ll break tons of things
$parsed_blog_id = get_id_from_blogname( $subdomain );


// url_to_postid() only works for the current blog
switch_to_blog( $parsed_blog_id );

$post_id = url_to_postid( $url );

restore_current_blog();
参考资料:

http://codex.wordpress.org/Function_Reference/get_id_from_blogname

http://codex.wordpress.org/Function_Reference/url_to_postid

SO网友:weston deboer

简单明了,要获取您只需使用的帖子id:

<?php 
echo get_the_ID(); 
?>
这将回显post id。

以及:

<?php 
echo get_current_blog_id(); 
?>
将回显博客id。

http://codex.wordpress.org/Function_Reference/get_the_ID

http://codex.wordpress.org/Function_Reference/get_current_blog_id分别地

SO网友:EAMann

我找到的最佳解决方案是Monkeyman Rewrite Analyzer 插件。是的written by a member of the WPSE community 为了回应不久前的一些类似请求。

您可以为它提供任何站点的URL,它将明确告诉您WordPress将如何映射/解释该请求。

例如:Rewrite analyzer screenshot

结束

相关推荐

Expiring Unique URLs

所以前几天我想为客户的网站开发一个新功能。每次新访问者单击Wordpress中的特定按钮时的唯一下载URL整个过程是如何进行的:比如说,我的网站左侧小部件区域有一个按钮,上面写着“立即下载电子书”。-我需要将每个访问者重定向到一个唯一的URL(该URL将在x个时间后过期)-在单独的页面上,下载链接将正常提供您是否知道是否有插件或脚本可以处理这样的任务或其他解决方案来实现这一点?谢谢