Twitterボタンでの日本語ドメイン変換

Simplicityの特徴 フォーラム Simplicityについての質問 Twitterボタンでの日本語ドメイン変換

  • このトピックには8件の返信、2人の参加者があり、最後にClaudioEnatsにより3週前に更新されました。
8件の返信スレッドを表示中
  • 投稿者
    投稿
    • #26975 返信
      ぴぴるん
      ゲスト

      お世話になっております。

      日本語URLを使用しています。
      Twitterボタンでのツイートを試したのですがツイートが

      http://○○.com/○○/日本語/

      となってしまいリンクされませんでした。
      こちら、ツイートの際にピュニコード変換する方法があれば教えていただけますとありがたいです。
      お手数ですがよろしくお願いいたします。

    • #26981 返信
      hidekichi
      ゲスト

      twitterの部分で言うと、javascript.jsの

      function get_social_count_twitter(url, selcter) {
        jQuery.ajax({
        url:'http://urls.api.twitter.com/1/urls/count.json',
        dataType:'jsonp',
        data:{
          url:url
        },
        success:function(res){
          jQuery( selcter ).text( res.count || 0 );
        },
        error:function(){
          jQuery( selcter ).text('0');
        }
        });
      }

      この部分にあたりますが、「function get_social_count_twitter(url, selcter) {」のurlの部分がそれぞれのタイトルやらのリンクになります。と言うことは、そのアドレスをajaxする前に、文字列の置換を行って、ピュニコードのアドレスに変換すればよいのではないかと思ったりも。

      日本語JPドメイン名のPunycode変換・逆変換で予めアドレスを変換しておき、それを置換してからurlに代入してajaxさせればよいのではないかと単純に思うんですけど、できませんかね?
      twitterの部分はtwitterのapiを直接叩いていると思うので、できるような気もするんですけど…。

      参考スクリプト: 部分的に置換するjQuery

      上記でアドレスの置換をしていますが、これを

      function get_social_count_twitter(url, selcter) {
        var originalAddress = url;
        var punicode = "xxxxxxx";
        var url = originalAddress.replace(/日本語のドメイン部分/g, punicode);
        jQuery.ajax({
        url:'http://urls.api.twitter.com/1/urls/count.json',
        dataType:'jsonp',
        data:{
          url:url
        },

      とか。うちでは日本語urlを持ってないので試すことができませんが、動くんじゃないかなぁ、どうかなぁって感じです。

      たぶん日本語urlはブラウザによって挙動が違うように思うのでどうなるかはわかりかねます。場合によっては正常に動作しないブラウザに対してだけ変換するというようなロジックを組み込まないとダメかも知れません。

      あ、punycodeだったんだ…punicodeになってますが、まぁいいんじゃないでしょうか(笑)

    • #26982 返信
      hidekichi
      ゲスト

      ちなみに、予め変更しておくのであれば、phpで変更しないといけません。
      これも置換をすれば良いと思うので、子テーマのfunctions.phpあたりに、

      function nihongoUrl($address){
      //…
      }

      みたいのを入れておいて、必要な箇所(おそらくsns-button-***.php)で、

      <?php echo nihongoUrl(ここに該当アドレス); ?>

      と言うような形で入れる必要があると思います。phpは、urlをパースする便利な関数もあるのでドメインだけ抜き出すのは簡単です。

      ◆parse_url: http://php.net/manual/ja/function.parse-url.php
      アドレスを分解します

      ◆http_build_url: http://php.net/manual/ja/function.http-build-url.php
      配列からアドレスを組み立てます

      ◆str_replace: http://php.net/manual/ja/function.str-replace.php
      文字を置換します

    • #26984 返信
      hidekichi
      ゲスト

      あ、カウンター部分じゃなくてツィートか…となると、

      htmlに既にある要素のアドレスを部分的に置換するjQuery こんなんでイケルのかなぁ…。

    • #26985 返信
      わいひらわいひら
      キーマスター

      >#26975
      PHPでピュニコード変換をする方法が、よくわからなかったりします。
      「PHP ピュニコード」でググっても、まず「Pearのライブラリをインストール」みたいなのしか上位表示部分には見つからなくて。
      何処か、日本語URLで独自ツイートボタンでのツイートがうまくいくサイトとかご存知ですか?
      あったら教えていただきたく思います。ソースのツイート用URL部分だけでも見て参考にしたいので。

    • #26988 返信
      がちょぴん
      ゲスト

      開発関連無知なので分かりませんが、
      下記のようなサイトを発見しました。

      URL:https://goo.gl/Ka1b3j

    • #26992 返信
      ぴぴるん
      ゲスト

      to みなさん

      気がついたらたくさんのレスありがとうございます!
      これから返信を確認しつつまた試してみたいと思います。

      ちなみに以前は「AN TCD014」というテンプレを使っていてsingle.phpに以下のような記述をしてシェアボタンを設定していました。

      <div class="snsshare2">
      
      <a id="share_tw" href="https://twitter.com/share?url=<?php
      $url = get_permalink();
      $_url = urlencode($url);
      $title = the_title('','', false);
      $_title = urlencode($title);
      ?>&text=<?php the_title(); ?>&via=ツイッターのアカウント" 
      
      target="blank" >Twitter <?php if(function_exists
      
      ('scc_get_share_twitter')) echo scc_get_share_twitter(); ?
      
      ></a>
      
      </div>

      ※Twitter部分のみ

      無知ながらいろんなサイトをみて、まぐれで上手く日本語URLが変換することができました。
      Simplicityでも同じコードを入れてみたんですが、上手くできず困っていました…。
      何の参考にもならないかもしれませんが、よろしければお目通しください。

      失礼します。

    • #26993 返信
      ぴぴるん
      ゲスト

      あれ、なんか上手くコードが書き込めてなかった…すいません。

      ↓ここから

      <div class=”snsshare2″>

      <a id=”share_tw” href=”https://twitter.com/share?url=&lt;?php
      $url = get_permalink();
      $_url = urlencode($url);
      $title = the_title(”,”, false);
      $_title = urlencode($title);
      ?>&text=<?php the_title(); ?>&via=BaBy_Happiness_”

      target=”blank” >Twitter <?php if(function_exists

      (‘scc_get_share_twitter’)) echo scc_get_share_twitter(); ?

      >

      </div>

      ↑ここまで

      見難いかもしれませんが失礼します…。

    • #26995 返信
      わいひらわいひら
      キーマスター

      #26982
      #26988
      こちらも明日試してみます。

      #26992
      ピュニコードはさておいて、ソースコードを見てみたらパーマリンク部分をurlencodeするのを忘れていました。
      手元のファイルを修正しておきます。

8件の返信スレッドを表示中
返信先: Twitterボタンでの日本語ドメイン変換
あなたの情報:




スポンサーリンク
アドセンス(大)
アドセンス(大)