从WordPress内部获取帖子的永久链接并路由到相关站点

时间:2012-04-13 作者:Cogicero

我构建了wordpress网站的移动版本,并在wordpress索引中添加了一些PHP代码。用于检测移动用户的php文件,并通过HTTP将其重定向到m.website.com这不是wordpress安装。这个PHP独立移动站点会在wp站点上搜索帖子并显示出来)。所有工作都很好,每个对整个站点的请求m.website.com 相反

唯一的问题是我的团队领导想让我改变方向website.com/2011/04/13/post-titlem.website.com/2011/04/13/post-title 针对移动用户。要做到这一点,my redirection script only needs to know the permalink of the page that index.php is trying to route to. 移动站点的索引。php将在收到permalink后处理它。

N、 B.当前,如果您访问m.website.com/2011/04/13/post-title 它正确显示。我只需要知道如何从wordpress内部捕获永久链接并将其提供给我的移动重定向代码。

EDIT:

感谢TomJ Nowell在下面的评论,我已经准备好将重定向脚本移动到Wordpress计算永久链接而不是索引的任何文件。不再使用php。因此,一旦知道永久链接,就可以重定向到m.website.com/router.php?path=2011/04/13/post-title 可以这样做m.website.com/2011/04/13/post-title 通过htaccess。谢谢

1 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

我会使用响应式设计,而不是网站的移动子域副本,但是如果您真的想要这样,请将以下代码放入插件中:

// this function doesn\'t exist prior to wordpress v3.4
if(!function_exists(\'wp_is_mobile\')){
   /**
    * Test if the current browser runs on a mobile device (smart phone, tablet, etc.)
    *
    * @return bool true|false
    */
   function wp_is_mobile() {
       static $is_mobile;

       if ( isset($is_mobile) )
           return $is_mobile;

       if ( empty($_SERVER[\'HTTP_USER_AGENT\']) ) {
           $is_mobile = false;
       } elseif ( strpos($_SERVER[\'HTTP_USER_AGENT\'], \'Mobile\') !== false // many mobile devices (all iPhone, iPad, etc.)
           || strpos($_SERVER[\'HTTP_USER_AGENT\'], \'Android\') !== false
           || strpos($_SERVER[\'HTTP_USER_AGENT\'], \'BlackBerry\') !== false
           || strpos($_SERVER[\'HTTP_USER_AGENT\'], \'Opera Mini\') !== false ) {
               $is_mobile = true;
       } else {
           $is_mobile = false;
       }

       return $is_mobile;
   }
}
add_action(\'init\',\'mobile_redirect_init\');
function mobile_redirect_init(){
    if(wp_is_mobile()){
        $url = \'http://m.\'.$_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"];;
        wp_redirect($url);
    }
}

结束

相关推荐

Taxonomy based permalinks

在我的网站上,我使用自己的分类法。我希望分类学与permalink相结合。因此,如果一个新闻页面有分类法,permalink就会改变。像这样:mysite。com/%custom\\u tax%/blog/%postname%,如果是一个页面,请点击:mysite。com/%custom\\u tax%/%postname%但如果没有我想要的分类法:mysite。com/blog/%postname%,如果它是一个页面:mysite。com/%postname%我怎样才能轻松地做到这一点?我已经设置了%c