JavaScript从Tumblr重定向到WordPress

时间:2012-05-11 09:51:43

标签: javascript wordpress redirect tumblr

我已经阅读了很多关于将Tumblr重定向到WordPress的主题,但我仍然找不到合适的解决方案。

问题在于:我想将jeby.tumblr.com Tumblr 博客重定向到新的jeby.it WordPress (WIP)我已经导入了所有内容,现在我想要的是“自动”重定向每一个帖子

jeby.tumblr.com/post/[POST ID]/some-slug

jeby.it/2012/05/some-slug

我知道Tumblr HTML代码中提供了年份和月份,因为它们用于构成固定链接。我无法使用.htaccess重定向,因为Tumblr博客由Tumblr托管。

我在Blogspot上做了同样的事情,在那里我发现了一个插件,它创建了正确的JavaScript代码以粘贴到Blogspot模型中并获得自动重定向。

1 个答案:

答案 0 :(得分:0)

正如您已经意识到的那样,您需要进行重定向客户端。如何实现这一点是Tumblr theme templating system’s possibilities and limitations的问题。

  • 帖子的年份和月份分别为available as {Year} and {MonthNumberWithZero}个令牌;这会让你201205
  • 然而,
  • post slug 不能作为代币(不确定这是否是故意遗漏 - 在Tumblr上可以选择post slugs;你可以手动设置一个,但如果你不是你的帖子只是按其数字ID) - 所以你必须从the {Permalink} token插入的链接中解析它。
  • 重定向只能在单个帖子页面上进行。不幸的是,没有基于模板的方法来确保你只针对这些,因为Tumblr的主题DSL的美丽和局限是它是定义为一个页面:你得到一个{block:Posts}块,Tumblr确定要在里面显示多少帖子。这意味着meta http-equiv="Refresh"标签是不可能的,因为它们也会包含在所有非单帖帖子中。

幸运的是,Tumblr确实允许您在模板中包含任意JavaScript,这是要走的路:

  1. {block:Posts}块中添加以下行:

    <span class="redirdata">{Year},{MonthNumberWithZero},{Permalink}</span>
    

    在CSS中使用redirdatadisplay:none范围设置样式以隐藏它们(或者将它们设置为内联样式 - 考虑到它们的预期用途,在教条方面没有什么意义)。

  2. 现在向您的<head>添加一个脚本来解析这些脚本并重定向到WordPress网址。由于您希望为每个可能的访问者执行此操作,即尽可能兼容跨浏览器,我建议使用jQuery。包括它:

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
    

    或任何其他托管来源(有关CDN网址,请参阅the jQuery docs)。然后添加以下脚本:

    <script type="text/javascript">
        $(function(){ 
            if ( $('.redirdata').length === 1) {
                var redirdataTokens = $('.redirdata').text().split(',');
                if (redirdataTokens.length === 3) { 
                    var redirectTo = 'http://jeby.it/'+redirdataTokens[0]+'/'+redirdataTokens[1]+'/'+redirdataTokens[2].replace(/.*\//, '');
                    window.location = redirectTo;
                }
            }
        });
    </script>
    

    并且您的单个帖子页面应该自动将所有访问者重定向到WordPress帖子页面(当然,如果他们启用了JavaScript)。我相信如果需要的话,你会想到将它改编成标记档案,搜索等。

  3. Caveat Empteor:这只有在你的WP帖子的帖子与你的Tumblr帖子的帖子匹配时才有效 - 关键的Tumblr帖子也没有文本slug(这意味着你需要WP slug)在这种情况下匹配数字Tumblr帖子ID。)