Simplicityの特徴 › フォーラム › Simplicityについての質問 › Twitterボタンでの日本語ドメイン変換
- このトピックには8件の返信、2人の参加者があり、最後ににより8ヶ月、 2週前に更新されました。
-
投稿者投稿
-
-
2015年5月24日 2:28 PM #26975ぴぴるんゲスト
お世話になっております。
日本語URLを使用しています。
Twitterボタンでのツイートを試したのですがツイートがとなってしまいリンクされませんでした。
こちら、ツイートの際にピュニコード変換する方法があれば教えていただけますとありがたいです。
お手数ですがよろしくお願いいたします。 -
2015年5月24日 4:14 PM #26981hidekichiゲスト
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になってますが、まぁいいんじゃないでしょうか(笑)
-
2015年5月24日 4:27 PM #26982hidekichiゲスト
ちなみに、予め変更しておくのであれば、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
文字を置換します -
2015年5月24日 4:51 PM #26984hidekichiゲスト
あ、カウンター部分じゃなくてツィートか…となると、
htmlに既にある要素のアドレスを部分的に置換するjQuery こんなんでイケルのかなぁ…。
-
2015年5月24日 5:00 PM #26985
-
2015年5月24日 8:17 PM #26988がちょぴんゲスト
開発関連無知なので分かりませんが、
下記のようなサイトを発見しました。URL:https://goo.gl/Ka1b3j
-
2015年5月24日 9:43 PM #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でも同じコードを入れてみたんですが、上手くできず困っていました…。
何の参考にもならないかもしれませんが、よろしければお目通しください。失礼します。
-
2015年5月24日 9:52 PM #26993ぴぴるんゲスト
あれ、なんか上手くコードが書き込めてなかった…すいません。
↓ここから
<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=BaBy_Happiness_”target=”blank” >Twitter <?php if(function_exists
(‘scc_get_share_twitter’)) echo scc_get_share_twitter(); ?
>
</div>
↑ここまで
見難いかもしれませんが失礼します…。
-
2015年5月24日 10:39 PM #26995
-
-
投稿者投稿
- フォーラム「Simplicityについての質問」には新規投稿および返信を追加できません。