• 締切済み

wordpressの内容を他のサイトで反映するには

はじめまして。phpはほとんど分からないハナタレです。 クライアントから、webサイトの最新情報くらいは自分で更新したい、それも無料で! と言われました。とりあえず無料のブログサービスで(アメブロ)情報を更新してもらい、そのブログのrssを取ってきてwebサイトに埋め込む事は出来ました。 ただ、さらに、クライアントが、最新情報をカテゴリーごとにまとめたいと言い出しました。いろいろ調べますと、無料のブログサービスではカテゴリーごとにフィードするのは無そうなので、wordpress(3.0.3)でなんとか出来ないかと奮闘中です。 wordpressでのrssでは、タイトルはtitleタグ、時間はpubDateタグ、本文のタグはcontent:encodedだったので、webサイトでのコードは... --------------------------------------------- <?php $url = "http://○○○/wordpress/feed/"; $rss = simplexml_load_file($url); foreach ($rss->channel->item as $j) { $title = $j->title; $time = $j->pubDate; $content = $j->content:encoded; echo "<dt>".date( "Y.m.d.", strtotime( $j->pubDate ) )."</dt>"; echo "<dd>". $title."</dd>"; echo "<dd>". $content."</dd>"; } ?> --------------------------------------------- と、しています。 $content = $j->content:encoded; という記述が間違っているのは何となく分かるのですが... どう記述すれば、ブログの内容をそのまま(画像や動画が埋め込まれていたらそれもそのまま反映させる)反映出来るのでしょうか。 wordpressをカスタマイズして最新情報だけそこへリンクさせればとも思うのですが、 反映させられる事を想定してcssも組んでしまったのでこのphpコードを上手く利用したいのです... どなたか、お分かりになる方、教えて頂けないでしょうか。

  • PHP
  • 回答数2
  • ありがとう数3

みんなの回答

  • manimani2
  • ベストアンサー率70% (12/17)
回答No.2

No.1です。なるほど、そうなってくると、あとはRSSの読み込み方法ですね。質問者さんが書いておられるように「content:encode」は間に「:」があるせいで、そのままでは読み込めません。参考URLを付けておきますので、そちらをご覧ください。同じ問題で悩んだ方がいたようです。

参考URL:
http://www.sketchsolo.com/2010/03/simplexml-load-filerss.php
mocayellow
質問者

お礼

すみません、間違って補足にお礼をしてしまいました....

mocayellow
質問者

補足

manimani2さま、再度のご回答ありがとうございました。 php同様、rssも理解していなくてもやもやしていましたが、構造が少し見えた感じです。 これをもとに再度検索をかけてみましたら、無知なる上の無謀な挑戦であったことがよくわかりました... 結局、MagpieRSSをダウンロードして使う方法がいくつか紹介されていましたので、 これで解決しました。 有り難うございました。

  • manimani2
  • ベストアンサー率70% (12/17)
回答No.1

直接の回答にならないかもしれませんが、もしかしたら近道があるかもしれないので、回答させてください。 今回、WordPressを使える環境ということなのであれば、サイトそのものをWordPressに組み込む事はできないのでしょうか?(組み込むというより、WordPressでサイトを構築する、といった方がいいかもしれません。) CMSとしてWordPressを使うというのも、実際の現場では多いと思いますし、資料や書籍も充実しているので、質問者さんの意図している事もすんなり解決できる気がします。(具体的にはRSSではなくて、データベースから記事をカテゴリ毎に取り出す感じです。) >どう記述すれば、ブログの内容をそのまま(画像や動画が埋め込まれていたらそれもそのまま反映させる)反映出来るのでしょうか。 WordPressでサイトを構築することで、この辺りのこともスッキリ解決すると思います。PHPは初心者という事ですので、WordPressのカスタマイズがどこまで必要なサイトなのかが問題になりそうな気はしますが、話の流れだと「静的なHTML+CSSのページ」があって、「動的な最新情報のページ」を無料のブログで代用していらっしゃる状態なんですよね? でしたら既にHPのコーディングは出来ているのですから、そんなに時間はかからないのではないかと思います。 あまり参考にならないかもしれませんが、以上です。

mocayellow
質問者

補足

manimani2さま、ご回答有り難うございます。 >組み込むというより、WordPressでサイトを構築する、といった方がいいかもしれません。 本当にその方がよほどすっきりすると思います。(今私がやろうとしている事はちょっと変ですよね...) ただ、WordPressのカスタマイズもこれから勉強、という所なので、この件に関しては手っ取り早くこのphpのコードを上手く変更してすませたいなどと思っております.. これから新規にwebサイトを構築する際は、最初からWordPressを用いる事も 頭に入れなくては、と思っております。

関連するQ&A

  • PHPで以下のサイトのrssの情報を獲得したいのですが、なぜか<ite

    PHPで以下のサイトのrssの情報を獲得したいのですが、なぜか<item>を獲得できません。 rss: http://twib.jp/rss phpコード: $rss =simplexml_load_file('http://twib.jp/rss'); print_r($rss); $title =$rss->channel->title; echo $title; foreach ($rss->channel->item as $item) { echo $item->title; echo $item->description; echo $item->link; echo $item->pubDate; } どなたか、どこを直せばよいか教えていただけないでしょうか。

    • 締切済み
    • PHP
  • wordpress テンプレート毎に一部表示を切り替える方法は?

    最近、FC2ブログからWordpressに乗り換えました。 テンプレートは、vicunaのninjaを使用しています。 FC2ブログのほうでは、 <!--index_area-->~<!--/index_area--> <!--not_index_area-->~<!--/not_index_area--> <!--permanent_area-->~<!--/permanent_area--> <!--not_permanent_area-->~<!--/not_permanent_area--> というブロック変数が用意されていて、 この変数に囲まれた部分を、インデックスやパーマネントエリアごとに、表示・非表示を切り替えることができました。 Wordpressでは、どうすればこれと同じことができるのでしょうか? 例えば、vicunaでは、サイドバーがsidebar.phpとして独立しています。 ここで、 <dl> <dt> side_title(1) </dt> <dd> content </dd> <dt> side_title(2) </dt> <dd> content </dd> <dt> side_title(3) </dt> <dd> content </dd> </dl> というふうにサイドバーが構成されていたとして、中央の <dt> side_title(2) </dt> <dd> content </dd> の部分だけを、インデックスエリア(index.php)で非表示にするためには どうすればいいのでしょうか?

  • wordpressのタグ設定がうまくいかない

    wordpressでオリジナルテーマを作っています。MySQLデータベースはロリポップで設定しました。 wordpressの場合、コンテンツタイプは「text/html」・エンコードは「UTF-8」でないといけないのですが、phpテンプレートで <meta http-equiv="Content-Type" content="<?php bloginfo(`html_type`); ?> ;charset=<?php bloginfo(`charset`); ?>" /> と指定して、ブログをプレビューすると、ソース表示が <meta http-equiv="Content-Type" content="自分で設定したブログタイトル;charset=ブログタイトル" />  になってしまいます。 また、ヘッダーも、 <h1><a href="<?php bloginfo(`uri`); ?>"> <?php bloginfo(`name`); ?></a></h1> <p><?php bloginfo(`description`); ?></p> と入力しても、ソースが <h1><a href="ブログタイトル"> ブログタイトル</a></h1> <p>ブログタイトル</p> と全て同じ内容になってしまいます。 そして、スタイルシートも設定が反映しません。 初心者なので、これが説明不足かどうかわからないので、 とりあえずここでいったん区切ります。 教えてくれる方いらっしゃいましたら、補足説明もしますので、 ぜひお手数ですが宜しくお願い致します。

  • PHP4でXML

    こんにちは。PHPでXMLファイルを書き換えたいのですが、サーバ環境がPHP5ではありません。以下のようにHTMLと同じ方法でphpファイルを読み込むことは不可能なのでしょうか?だとしたら他に良い方法はありますか?困っています。どなたか助けてください。よろしくお願いします。 <?xml version="1.0" encoding="utf-8"?> <rss version="2.0"> <channel> <title>○○1</title> <link>http://○○</link> <description>ウェブサイトに掲載されている最新の情報を掲載しております。</description> <language>ja</language> <copyright>Copyright (c) 2007 ○○, Inc. All Rights Reserved.</copyright> <pubDate><?php include("../rss/date.php"); ?></pubDate> <item> <title>ニュースリリース</title> <link>http://○○</link> <description><?php include("../rss/news.php"); ?></description> <pubDate><?php include("../rss/date.php"); ?></pubDate> </item> <item> <title>商品一覧ページ</title> <link>http://○○</link> <description><?php include("../rss/prodact.php"); ?></description> <pubDate><?php include("../rss/date.php"); ?></pubDate> </item> <item> <title>沿革</title> <link>http://○○</link> <description><?php include("../rss/corporation.php"); ?></description> <pubDate><?php include("../rss/date.php"); ?></pubDate> </item> </channel> </rss>

    • 締切済み
    • XML
  • wordpressを使って他サイトの掲示板を

    wordpressを使って他サイトを紹介したいと思うのですが、ブログなどはRSSを使って自分のサイトの新着情報部分に表記させることはできると思うのですが、掲示板などでも似たようなことができるのでしょうか? たとえばhttp://www.add7.net//bbs-ny/manhattan/roommate.htmとかhttp://newyork.vivinavi.com/JA/re/などの情報を新着順などで表示させることは可能なのでしょうか?

    • 締切済み
    • CSS
  • Mixi日記のデータ→他のブログに反映 は可能ですか?

    mixiで日記を書いています。 mixiに書いたデータを他のブログに反映させたいと思います。 RSSの情報を手に入れて、他のブログの設定欄に書き込めばいいのでしょうが、どこにRSS情報があるかわかりません。 他のブログのデータ→Mixi日記に反映 の仕方はわかるので、原理は理解しているつもりなのですが、RSS情報のありかがわかりません。 どこを見ればいいでしょうか? 教えてください。 お願いします。

  • [wordpress]外部RSSを「文字数制限」してリストで取得[php]

    初めまして。 wordpress、php初心者です。 タイトル通り、外部のRSSを自分のサイトで、 リスト表示させようと思っています。 ------------ <h1><?php _e('Headlines from Yahoo ITmedia News'); ?></h1> <?php // Get RSS Feed(s) include_once(ABSPATH . WPINC . '/rss.php'); $rss = fetch_rss('http://headlines.yahoo.co.jp/rss/itmedia_n.xml'); $maxitems = 5; $items = array_slice($rss->items, 0, $maxitems); ?> <ul> <?php if (empty($items)) echo '<li>No items</li>'; else foreach ( $items as $item ) : ?> <li><a href='<?php echo $item['link']; ?>' title='<?php echo $item['title']; ?>'> <?php echo $item['title']; ?> </a></li> <?php endforeach; ?> </ul> ------------ 上記のソースで表示はひとまずできました。 あと、これを文字数制限(たとえば10文字以上は「…」)で表示 としたいのですが、どうしたらいいのでしょうか? ------------ <?php $title= mb_substr($post->post_title,0,10); echo '<h1>'.$title.'…</h1>'; ?> ------------ 上記の「mb_substr(」を組み合わせればできそうなのですが、 理解不足な分、うまくいきません。 誰が、教えてください。よろしくお願いします。

    • ベストアンサー
    • PHP
  • 携帯サイトがソフトバンクのみ表示されない

    お世話になります。 只今携帯サイトを作成中なのですが、調べてもどうしてもわからなかったので質問させていただきます。 RSS取得のPHPコードを埋め込んだPHPファイルがソフトバンクのみ、埋め込んだ場所から何も表示されなくなってしまいます。 Docomo,auは普通に表示されます。下記が全部共通のソースです。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>aaaaaaaaaaa</title> </head> <body> <a name="top"></a> <div align="center"><img src="img/top.png"></div> <marquee bgcolor="#FF9900" LOOP=16> <font size="-1" color="#FFFFFF">aaaaaaaaaaaaaaaaaaaaaaaaa</font> </marquee> <hr><br> <div align="left"><img src="img/news.png" width="80" height="19"><br> <?php $url = 'http://〇〇〇〇〇〇〇〇〇〇〇/rss2/'; $rss = fetch_rss($url); $title = $rss->channel['title']; echo " <dl>\n"; $rss->items = array_slice($rss->items, 0, 3); foreach ($rss->items as $item ) { $title = $item[title]; $url = $item[link]; $date = $item['date_timestamp']; $date = date('Y年m月d日',$date); echo " <dt>$date </dt>\n"; echo " <dd><a href=\"$url\">$title</a></dd>\n"; } echo " </dl>\n"; ?> </div> どなたかご教授お願いいたします。 本当に困っています。よろしくお願いします。

    • 締切済み
    • PHP
  • wordpressのdescription設定

    wordpress、phpの初心者です。 SEO対策のために、descriptionを全ページ、コンテンツに適したもので出力できればと思い、 ・トップページは一般設定の「キャッチフレーズ」 ・カテゴリーページは「カテゴリーの説明文」 ・投稿ページは「カスタムフィールド」 ・それ以外、及びカスタムフィールドが入力されていない投稿ページは「ページタイトル | 一般設定のキャッチフレーズ」 上記の用に出力できるよう、ググって色んなサイトを参考に下記のように記述したのですが、 真っ白になって表示されません。 <?php if (is_home()) { echo '<meta name="description" content="<?php bloginfo('description'); ?>" />'; } elseif (is_category()) { echo '<meta name="description" content="<?php echo category_description(); ?>" />'; } elseif(is_single()){ echo '<meta name="description" content="<?php echo get_post_meta($post->ID,'description',true);?>" />'; } else { echo '<meta name="description" content="<?php wp_title('|', true, 'right'); bloginfo('description'); ?>" />'; }?> プラグインもイマイチ希望のものが見つからず、 何とか試行錯誤しているのですが、未だに解決出来ずにいます。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • RSS 日付の取得方法

    見てくださった方、こんにちは。 php超初心者のkitakaruと申します。 ホームページを作っていて、 RSSを取得して表示させたいのですが、 それが出来ずにほとほと困っています。 htmlやcssは多少分かるのですが、 phpは全くといっていいほど分かりません。 どなたか詳しい方がいらしゃいましたら、 ご教示頂けますでしょうか。 よろしくお願い致します。 呼び出しているxmlの形式はrss2.0です。 http://i-njoy.net/tips/rss.shtml こちらのサイトを参考に 以下のようソースを書きました。 (1)のpubdateというタグの値を引っ張ってこれず そこで行き詰ってしまっています。 ちなみにタイトルなどはきちんと表示されています。 分かる方、どうぞよろしくお願いします。 <?php require_once 'rss_fetch.inc'; require_once 'code_table.ucs2jis'; require_once 'jcode.php'; $url = 'http://www.xxxxxxxxxxxxx/index.xml?mode=rss'; $rss = fetch_rss($url); $title = $rss->channel['title']; $date1 = htmlspecialchars($item['pubdate']);  //(1)rss 出力日時を取得して 変数data1に代入 $date2 = date("Y.m.d", strtotime($date1));   //(2)表示形式変換 data1を変換したものを変数data2に代入 //JcodeConvert($str, $from, $to) //0:PASS(無変換)1:EUC-JP 2:Shift_JIS 3:ISO-2022-JP(JIS) 4:UTF-8 $title = JcodeConvert($title, 4, 4); foreach ($rss->items as $item ) { $title = $item[title]; $title = JcodeConvert($title, 4, 4); $url = $item[link]; echo '<li><dl><dt>'.$date1.'</dt><dd><a href="'.$url.'">'.$title.'</a></dd></dl></li>'; //(3)変数data2を出力 } ?>

    • ベストアンサー
    • PHP

専門家に質問してみよう