我已经阅读了很多关于将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模型中并获得自动重定向。
答案 0 :(得分:0)
正如您已经意识到的那样,您需要进行重定向客户端。如何实现这一点是Tumblr theme templating system’s possibilities and limitations的问题。
{Year}
and {MonthNumberWithZero}
个令牌;这会让你2012
和05
。{Permalink}
token插入的链接中解析它。{block:Posts}
块,Tumblr确定要在里面显示多少帖子。这意味着meta http-equiv="Refresh"
标签是不可能的,因为它们也会包含在所有非单帖帖子中。幸运的是,Tumblr确实允许您在模板中包含任意JavaScript,这是要走的路:
在{block:Posts}
块中添加以下行:
<span class="redirdata">{Year},{MonthNumberWithZero},{Permalink}</span>
在CSS中使用redirdata
为display:none
范围设置样式以隐藏它们(或者将它们设置为内联样式 - 考虑到它们的预期用途,在教条方面没有什么意义)。
现在向您的<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)。我相信如果需要的话,你会想到将它改编成标记档案,搜索等。
Caveat Empteor:这只有在你的WP帖子的帖子与你的Tumblr帖子的帖子匹配时才有效 - 关键的Tumblr帖子也没有文本slug(这意味着你需要WP slug)在这种情况下匹配数字Tumblr帖子ID。)