2012-05-11 10 views
1

TumblrをWordPressにリダイレクトする方法については、多くのトピックを読んでいますが、まだ適切な解決策が見つけられません。ここでTumblrからWordPressへリダイレクトするURL

問題です:私はjeby.tumblr.comをリダイレクトする、新しいjeby.itTumblrのブログ、私はすでに、すべてのコンテンツをインポートしたカスタムドメインやWebスペースなどでワードプレス(WIP)のブログ、今私が望むすべては「自動的に」

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

から

jeby.it/2012/05/some-slug 

にすべての単一のポストをリダイレクトするために、私はポストyのことを知っていますTumblrのHTMLコードでは、パーマリンクを構成するために使用されているため、耳と月を利用できます。 TumblrのブログはTumblrでホストされているため、.htaccessのリダイレクトは使用できません。

私はBlogspotで同じことをしました。ここでBlogspotモデルに貼り付けて自動リダイレクトを取得するための適切なJavaScriptコードを作成したプラグインが見つかりました。

答えて

0

すでにわかっているように、リダイレクトクライアント側を行う必要があります。それを達成する方法はTumblrのtheme templating system’s possibilities and limitationsの問題です。

  • ポストの年と月はそれぞれavailable as {Year} and {MonthNumberWithZero}トークンです。あなたは201205になります。
  • しかし、ポストスラッグは、トークンとして利用できません(これは意図的な省略であるかどうかわかりません - ポストslugsはTumblrではオプションです;手動で設定することもできますが、その数字のIDによって) - あなたはthe {Permalink} tokenによって挿入されたリンクからそれを解析する必要があります。
  • リダイレクトはシングルポストページでのみ可能です。 TumblrのテーマDSLの美しさと限界は、それが1ページとして定義されていることです:あなたは{block:Posts}ブロックを取得し、Tumblrはどのくらい多くの投稿を把握しているのでしょうか、不都合なことに、テンプレートベースの方法はありません。その中に表示する。つまり、meta http-equiv="Refresh"のタグは、すべての非シングル投稿ページにも含まれているので、問題にはなりません。

幸いにも、Tumblrのは、あなたのテンプレートで任意のJavaScriptを含ませず、それが移動するための方法である:

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

  1. {block:Posts}ブロック内の以下の行を追加します。 redirdataのCSSスタイルをdisplay:noneに設定してCSSを非表示にするか、インラインでスタイルを設定してください(意図的な使用を考慮すると、ドグマチックではありません)。

  2. これらを解析してWordPress URLにリダイレクトするには、<head>にスクリプトを追加します。可能な限りすべての訪問ユーザー、つまりブラウザとの互換性を保ちたい場合は、jQueryを使用することをおすすめします。

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

    または任意の他のホストされたソース(CDN URLのthe jQuery docsを参照してください):でそれを含めます。 (彼らはもちろん、JavaScriptが有効になっている場合)、自動的にWordPressの投稿ページへのすべての訪問者をリダイレクトする必要があり

    <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> 
    

    とあなたのシングルポストページ:次に、以下のスクリプトを追加します。必要に応じて、これをタグアーカイブ、検索などに適応させることがわかります。

警告Empteor:あなたのWPの記事のナメクジがあなたのTumblrのポストのナメクジと一致した場合にのみ動作します - なしテキストスラグとTumblrのポストの場合にも、決定的に(つまり、あなたはスラグがする必要がWPその場合はTumblrの投稿IDと一致してください)。

+0

ありがとう、ちょうど私が必要とするものですが、どこに$関数を置くのか分かりません...など – user1389100

+0

@ user1389100:jQueryスクリプトタグの後にテンプレートの*頭*の中に*スクリプト* 、すなわち ' – kopischke

+0

mmh ...うまくいきません。多分私はこれを行う前に "標準的な" tumblrテーマに戻さなければならないでしょうか? – user1389100

関連する問題