Home » , , » Bloggerのラベルごとの関連記事表示に挑戦!

Bloggerのラベルごとの関連記事表示に挑戦!

奈美 | 水曜日, 3月 27, 2013 | 3コメント
今回は関連記事表示があったほうが便利なので早速手当たりしだい検索。
すると以下のサイトに遭遇!
クリボウの Blogger Tips

やり方は2通りあるみたいだけど
1つ目は日本だと文字化けするとの事なのでヤメ。。。
2つ目のやり方でやってみたら以下のようなボタン出現?!
クリックしてみると以下のような英文が表示される

The key is invalid. Please go to BRPS to obtain one. If you are reading this, please relay the message to the owner of this blog.

その先どうやればよいのか分からないwwwww
20130327155057


次にやってみたのは以下だけどこれだとサムネイル付でも上手く表示された


やり方もとても簡単だ。まだ記事が少ないので醜いかもですがスクリーンショットを記念に(笑・・・

Related Posts Widget for Google Blogger v2.0 - Setup
やり方はテンプレート編集で「div class='post-footer」を探して
二つあるので上にある方の下に、先ほどのコードをコピーするだけ。

とりあえずしばらくこれで様子を見て見よう。。と言う訳でこれは問題解決済みで。。。
追記:コメントにも書いた通りで修正しました
修正点は個別記事のみにRelated Postsを表示するように変更
やり方は以下<b:if cond='data:blog.pageType == "item"'>
<!--~~~~~~~~~~~~~~~~~ Include these JS files once: jQuery then plugin -->
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js' type='text/javascript'/>
<script src='http://blogger-related-posts.googlecode.com/files/jquery.related-posts-widget-2.0.min.js' type='text/javascript'/>
</b:if>
 やっぱ違う方法だと文字化けがするwww
この問題は正直お手上げ状態なのでしばらくこのままにしておくことにした。
また問題未解決入りだ。(涙・・・
誰か分かる人いれば教えてください。
以下のスクリプトです。
ただしテンプレートによって文字化けしないものも確認済み
 <b:includable id='main' var='top'>を見つけ出し、
その前の行に以下

 <b:includable id='related-posts' var='posts'>
<b:if cond='data:blog.pageType == &quot;item&quot;'>
<div class='similiar'>

<div class='widget-content'>
<h3>Related Posts :</h3> /* タイトル hタグは任意 */
<div id='data2007'/><br/><br/>
<script type='text/javascript'>

var homeUrl3 = &quot;<data:blog.homepageUrl/>&quot;;
var maxNumberOfPostsPerLabel = 4;
var maxNumberOfLabels = 10;

maxNumberOfPostsPerLabel = 10; /* ラベル毎に表示する記事数 */
maxNumberOfLabels = 3; /* 表示するラベル数&#65288;アルファベット昇順&#65289; */


function listEntries10(json) {
var ul = document.createElement(&#39;ul&#39;);
var maxPosts = (json.feed.entry.length &lt;= maxNumberOfPostsPerLabel) ?
json.feed.entry.length : maxNumberOfPostsPerLabel;
for (var i = 0; i &lt; maxPosts; i++) {
var entry = json.feed.entry[i];
var alturl;

for (var k = 0; k &lt; entry.link.length; k++) {
if (entry.link[k].rel == &#39;alternate&#39;) {
alturl = entry.link[k].href;
break;
}
}
var li = document.createElement(&#39;li&#39;);
var a = document.createElement(&#39;a&#39;);
a.href = alturl;

if(a.href!=location.href) {
var txt = document.createTextNode(entry.title.$t);
a.appendChild(txt);
li.appendChild(a);
ul.appendChild(li);
}
}
for (var l = 0; l &lt; json.feed.link.length; l++) {
if (json.feed.link[l].rel == &#39;alternate&#39;) {
var raw = json.feed.link[l].href;
var label = raw.substr(homeUrl3.length+13);
var k;
for (k=0; k&lt;20; k++) label = label.replace(&quot;%20&quot;, &quot; &quot;);
var txt = document.createTextNode(label);
var h = document.createElement(&#39;b&#39;);
h.appendChild(txt);
var div1 = document.createElement(&#39;div&#39;);
div1.appendChild(h);
div1.appendChild(ul);
document.getElementById(&#39;data2007&#39;).appendChild(div1);
}
}
}
function search10(query, label) {

var script = document.createElement(&#39;script&#39;);
script.setAttribute(&#39;src&#39;, query + &#39;feeds/posts/default/-/&#39;
+ label +
&#39;?alt=json-in-script&amp;callback=listEntries10&#39;);
script.setAttribute(&#39;type&#39;, &#39;text/javascript&#39;);
document.documentElement.firstChild.appendChild(script);
}

var labelArray = new Array();
var numLabel = 0;

<b:loop values='data:posts' var='post'>
<b:loop values='data:post.labels' var='label'>
textLabel = &quot;<data:label.name/>&quot;;

var test = 0;
for (var i = 0; i &lt; labelArray.length; i++)
if (labelArray[i] == textLabel) test = 1;
if (test == 0) {
labelArray.push(textLabel);
var maxLabels = (labelArray.length &lt;= maxNumberOfLabels) ?
labelArray.length : maxNumberOfLabels;
if (numLabel &lt; maxLabels) {
search10(homeUrl3, textLabel);
numLabel++;
}
}
</b:loop>
</b:loop>
</script>
</div>
</div>
</b:if>
</b:includable>

 次に、テキストエリアから
<div style='clear: both;'/> <!-- clear for photos floats -->

というコードを見つけ出し、その次の行に

<b:include data='posts' name='related-posts'/>
を挿入します。

そうするとこのブログで使ってる文字化け関連記事ができますwww

テンプレートによって文字化けしないものもあります。
しばらくはこのテンプレートで行きますので
文字化けのままになります。

問題は解決出来ませんがいずれ先に解決出来ればまた報告します。



Share this article :

3 コメント:

奈美 さんのコメント...

もしこれが何らかの不都合があるならもう1つのやり方も発見したのでそれでやるようにした。

奈美 さんのコメント...

おいおいなんだよ・・・・・・・・・・・・
今気づいたけどRelated Postsが記事のトップ1記事ごとに全部表示されてる(涙・・・
これはダメだな!
やりたいのはトップの最新記事に1つだけ表示したかった。
これが難しいのならトップの記事には表示しないで
1つの記事を表示した時にだけRelated Postsが表示するようにしたい。
wwwwwwwwwwwwwww
なんかいろいろ時間かかるなぁ。
違うテンプレート探してどうなるか見て見よう。(汗・・・・

奈美 さんのコメント...

トップページに表示されない件は修正済み。。。メデタシメデタシ!
次は
今使ってるRelated Postsのスクリプトだけでラベル訳が出来てない事に気がついた。(涙・・・
なので、次にラベル分けで表示するように修正中(苦笑・・

コメントを投稿

 
Copyright © 2011. Web Drawing - All Rights Reserved
Proudly powered by Blogger