人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

下記のサイト様を参考にしてwordpressのRSSの表示をいたしました。

http://news.7zz.jp/web/1458.html

そこで質問なのですが、本文の文字数を200文字にしようと思い、
.substr(0, 200)
としたのですが、120文字しか表示されません。

どのようなコードで本文の文字数を120文字以上で表示することが出来るのでしょうか?

よろしくお願いいたします。


●質問者: osafree
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● snow0214
●0ポイント

WordPressログインメニューから設定→表示設定と進みます。
表示設定では記事の表示方法などを変更することが出来るのですが、ここで「RSS/Atomフィールドでの各投稿の表示」で「全文を表示」を選択してください。
http://wpbeginner.info/wp-content/uploads/2013/05/62.png


osafreeさんのコメント
ご回答いただきまして誠にありがとうございます。 確かめてみたところ、上記設定になっておりました。

2 ● ラフティング
●500ポイント

元ネタを見ましたが、取得元に指定している「contentSnippet」は、概要部分ですので、HTMLタグは含まれず文字数は120 文字未満となっていますので、MAX120となっているワケです。

取得元を「content」にすると、本文から取ってくることになりますので、本文が120字以上あれば指定した200字まで取ってくることができるようになります。

ご参考までに、
http://www.ajaxtower.jp/googleajaxfeed/feed/index3.html


osafreeさんのコメント
ご回答いただきまして誠にありがとうございます。 参考サイト様を参考にして、コードを修正したのですが、何も表示されなくなってしまったりしています。。 どのようなコードですと可能なのでしょうか?

ラフティングさんのコメント
「contentSnippet」→「content」へ変えただけではないんですか?

osafreeさんのコメント
contentSnippet : rss.feed.entries[i].contentSnippet, ↓ content : rss.feed.entries[i].content, + '<p>' + entry[0]['contentSnippet'].substr(0, 200) + '……</p>nn'; ↓ + '<p>' + entry[0]['content'].substr(0, 200) + '……</p>nn'; に変えたところ何も表示されなくなってしまいました。

ラフティングさんのコメント
// RSSから記事の情報を配列に格納 for (var i=0; i<rss.feed.entries.length; i++){ entry[i] = { title : rss.feed.entries[i].title, link : rss.feed.entries[i].link, content : rss.feed.entries[i].content, contentSnippet : rss.feed.entries[i].contentSnippet, publishedDate : rss.feed.entries[i].publishedDate --- 上記の contentSnippetまでcontentへ変更されたのでしょうか?

osafreeさんのコメント
はい。 変更いたしました。この箇所は変更しないのですか?

ラフティングさんのコメント
当方の環境で確認してみた結果、 <a href="http://news.7zz.jp/ajax/2447.html" rel="nofollow">http://news.7zz.jp/ajax/2447.html</a> に掲載されているサンプルコードは表示されていますが、 <a href="http://news.7zz.jp/web/1458.html" rel="nofollow">http://news.7zz.jp/web/1458.html</a> に掲載されているサンプルコード2例については表示されていません。 したがって、<a href="http://news.7zz.jp/ajax/2447.html" rel="nofollow">http://news.7zz.jp/ajax/2447.html</a>に表示されているサンプルコードで試してみてください。

osafreeさんのコメント
http://news.7zz.jp/ajax/2447.html にて表示はできました。文字数は増やすにはどう変更すればよろしいでしょうか?

ラフティングさんのコメント
/ 記事をhtmlに整形 for (var l=0; l<disp_entry_count; l++){ if (entries.length < l+1){ break; } if (entries[l]['img'] != null) { Feed += '<img width="100" src="' + entries[l]['img'][0] + '">n'; } Feed += '<h2><img src="' + entries[l]['site_favicon'] + '">n' + 'n' + '<a href="' + entries[l]['site_link'] + '">' + entries[l]['site_title'] + '</a></h2>n' + entries[l]['date'] + '<h3>n' + '<a href="'+ entries[l]['link'] + '">' + entries[l]['title'] + '</a>n' + '</h3>n' + '<p>contentSnippet:' + entries[l]['contentSnippet'].substr(0, 100) + '……</p>nn'; } 上記の + '<p>contentSnippet:' + entries[l]['contentSnippet'].substr(0, 100) + '……</p>nn'; を + '<p>content:' + entries[l]['content'].substr(0, 100) + '……</p>nn'; にしてみてください。 ちょっと環境を作っていられませんので確認まではできませんが、ソースを見る限りこれでいけるはずです。 あとはブログの作者に直接コメント欄で聞いて見てください。

ラフティングさんのコメント
+ ' content:' + entries[l]['content'].substr(0, 200) + '…… nn'; 訂正です。100→200

ラフティングさんのコメント
あと、JSのファイルも該当場所におく必要があると書いてあったと思いますので、ご自身でご確認ください。

osafreeさんのコメント
上記方法で試してみたのですが、画像が二つ表示されてしまいます。 現在のところは文字数以外は通常通りに表示されております。 作者のコメント欄には前にコメントしたのですがご返事がもらえない状態です。

ラフティングさんのコメント
画像が二つ表示されてしまうのは、広告バナーを拾ってきてしまっているからではないでしょうか? 作者のブログに下記の記述があります。 --- 表示する画像は、記事に含まれている最初の画像を表示するようにしていますが、読み込むRSSによっては、広告のバナーを拾ってしまう場合もあります。その辺りは読み込むRSSに合わせて、適宜調整してください。 ---
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ