質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
RSS

RSS(Really Simple Syndication)はブログのエントリやニュースの見出し、標準のフォーマットの音声やビデオなどを発行するために使われるウェブフィードのフォーマットの集合体です。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

2607閲覧

wordpressのfeedを複数読み込みする方法(simplexml_load_file関数)

miw_arock

総合スコア10

RSS

RSS(Really Simple Syndication)はブログのエントリやニュースの見出し、標準のフォーマットの音声やビデオなどを発行するために使われるウェブフィードのフォーマットの集合体です。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2017/10/06 03:37

php初心者です。

wordpressのfeedを、phpファイルに6つ読み込みさせたところ、
表示はうまく出来ているのですが、動作が重たい、、、といいますか、
最初の読み込み〜表示までに、すごく時間がかかるようになってしまいました。
これを回避するには、どのように対策したらよいでしょうか。

wordpress側
※表示設定でfeedの記事は5件表示にしています。

wordpressトップページ
├カテゴリーA
├記事
├カテゴリーB
├記事
├カテゴリーC
├記事
├カテゴリーD
├記事
├カテゴリーE
├記事
├カテゴリーF
├記事

phpファイル側
※phpファイル側の読み込みは、simplexml_load_file関数を使いました。

<ul> <?php $rss = simplexml_load_file('wordpressのカテゴリーAのfeedのパス'); foreach($rss->channel->item as $item){ $title = $item->title; $date = date("Y-m-d", strtotime($item->pubDate)); $link = $item->link; ?> <li> <a href='<?php echo $link; ?>'><?php echo $date; ?>&nbsp;<?php echo $title; ?></a> </li> <?php } ?> </ul>

というかたまりが、
wordpressのカテゴリーの数だけ6カ所あります。

feedを複数読み込みする場合の方法として、
これが正しいのかどうか、、、
他に最適な方法がありましたら、教えていただけますと嬉しいです。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2017/10/06 03:55

データ量はどれくらいでしょうか?
miw_arock

2017/10/06 04:16

全面の画像を多く使っているので6MBくらいあります。
miw_arock

2017/10/06 04:22

補足ですが、画像が多い分、ページ容量があるから、というのはあまり関係なさそうです。
guest

回答2

0

自己解決

結局、自分の技量だけではうまく改善できず、
エンジニアさんに依頼し、対処していただくかたちになりました。
この件については解決とさせていただきます。
コメントくださった方々へ御礼と感謝を申し上げますm(_ _)m
ありがとうございました!

投稿2018/02/01 01:29

miw_arock

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

サーバーのスペックも左右すると思いますが、その辺りは借り物だとどうしようもないですね。
SimplePieというライブラリがあるようです。試してみてはどうでしょう。
http://simplepie.org/

あと勝手な妄想ですが、WordPressの記事を更新したらフィードを取得させたい側に必要な情報を入れたCSVか何かのファイルを投げるか取らせるかして、それを食わせたら軽いだろうなーと思います。

追記
手間をかけずになるべく簡単に…と考えたらこうなりました。

■WordPress側の処理
WordPressで記事を投稿した瞬間に外部にメールを送信する方法
https://ottan.xyz/wordpress-publish-mail-push-5145/

専用のアドレスを作っておいて、記事を更新したらフィードを表示させたい側へメールを送信

■フィードを出力したい側の処理
メール受信時に PHP スクリプトを起動して自動処理させる方法
http://www.abe-tatsuya.com/web_prog/php/mail2php.php

【Linux】メール受信時にPHPスクリプトを起動する方法
https://ameblo.jp/tekitoizm/entry-10907235565.html

メール受信時にPHPを動かす手段は環境に合った方法を調べてください。
メールを受信したらWordPressのフィードにアクセスしてファイルを保存

<?php $xml_file = file_get_contents( 'フィードのURL' ); file_put_contents( './feed.xml', xml_file );

以降、保存したXMLから出力

$rss = simplexml_load_file( 'http://example.com/feed.xml' );

これだとそう遅くはならないと思います。

投稿2017/10/08 05:20

編集2017/10/09 07:31
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

miw_arock

2017/10/09 05:27

ありがとうございます。SimplePie、試してみました。 ダウンロードして、サーバへlibraryとautoloader.phpをいれて…で使い方はあっていますか? 試した限り、やはり複数を同時に読み込むというのが良くないのでしょう、状況はそんなに変わりませんでした。(気持ち1秒ほど早くはなりました)
miw_arock

2017/10/09 05:28

>WordPressの記事を更新したらフィードを取得させたい側に必要な情報を入れたCSVか何かのファイルを投げるか取らせるかして・・・ なるほど…そういう方法もあるのですね。 私のphp知識では手に負えないかんじです(><)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問