2012-05-11 38 views
1

我讀過很多關於將Tumblr重定向到WordPress的主題,但是我仍然找不到合適的解決方案。JavaScript從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

正如您已經意識到的那樣,您將需要執行重定向客戶端。如何實現這一點是Tumblr的theme templating system’s possibilities and limitations的問題。

  • 後的年份和月份分別爲available as {Year} and {MonthNumberWithZero}令牌;那會得到你201205
  • 然而,後slu 012不可用作爲一個令牌(不知道這是否是故意的遺漏 - 後slu are在Tumblr上是可選的;您可以手動設置一個,但如果您不這樣做,通過它的數字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中將redirdata跨度與display:none相匹配,以隱藏它們(或者將它們設置爲內聯式 - 考慮到它們的預期用途,教條式是沒有意義的)。

  2. 現在將腳本添加到您的<head>分析這些並重定向到WordPress URL地址。正如你想爲每一個可能的訪問者所做的那樣,即儘可能兼容瀏覽器,我推薦使用jQuery

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

    或任何其他託管源(見the jQuery docs爲CDN網址):與包括它。然後添加下面的腳本:

    <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,當然)。我相信你會想出適應這個標籤檔案,搜索等,如果需要的話。

買者Empteor:這一點,如果你的WP帖子的蛞蝓符合您的tumblr帖子的蛞蝓只會工作 - 關鍵還的tumblr帖子沒有文本塞的情況下(這意味着你WP蛞蝓需要在這種情況下,匹配數字Tumblr帖子ID)。

+0

謝謝你,正是我所需要的,但我還沒有理解把$ function放在哪裏...... etc – user1389100

+0

@ user1389100:在jQuery腳本標籤後面放置一個* script *標籤,即'' – kopischke

+0

mmh ...不工作。在做這件事之前,也許我必須恢復到「標準」tumblr主題? – user1389100