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

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

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

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

PHP

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

Q&A

1回答

325閲覧

wordpressのカスタムフィールドに名前と外部ブログのurl入力欄を設け、全rssと名前を日付順に並べ替え、最新の4件だけ表示したい。

oriuo

総合スコア6

WordPress

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

PHP

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

0グッド

0クリップ

投稿2018/01/31 07:49

編集2022/01/12 10:55

前提・実現したいこと

wordpressのカスタム投稿タイプのカスタムフィールドに、名前(person_name)と外部ブログのurl(blog_url)を入力出来るようにしています。
カスタムフィールドで入力した名前とrssの日付、記事のタイトル、を表示しているのですが、それを日付順に並び替えた上、最新の4件だけ表示したいです。

発生している問題

カスタムフィールドに入力したurlのrssは全て表示出来ているが、各投稿に入力した外部ブログのrssが日付順に4件ずつ(4件無い場合は最大)並んでいるだけで、全てのrssを日付順に並べることが出来ない。

該当のソースコード

include_once(ABSPATH . WPINC . '/feed.php'); $rss = fetch_feed( get_field('blog_url') ); if(!is_wp_error($rss)) { $maxitems = $rss->get_item_quantity(4); $rss_items = $rss->get_items(0, $maxitems); date_default_timezone_set('Asia/Tokyo'); } if($maxitems == 0) { echo '<div class="oneBox"> <p class="title">まだ投稿はありません</p> </div>'; } else { $ary_blog_data = array(); foreach ( $rss_items as $item ) : $title = trim(strip_tags($item->get_title())); if(preg_match('/^PR:/', $item->get_title())) { } else { $output = '<div class="oneBox"> <ul> <li class="date">' . $item->get_date('Y.m.d') . '</li> <li class="name">' . get_field('person_name') . '</li> </ul> <p class="title"> <a href="' . $item->get_link() . '" target="_blank">' . $title . '</a> </p> </div>'; echo $output; } endforeach ; }

補足情報(FW/ツールのバージョンなど)

当方、ほとんどと言っていいほどPHPの知識がありませんので、やりたいことが上手く伝わっているか・・・。

http://aimers.jp/%E3%80%90wp%E3%80%91%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89%E3%81%AB%E5%85%A5%E5%8A%9B%E3%81%97%E3%81%9F%E3%83%96%E3%83%AD%E3%82%B0url%E3%81%A7rss%E4%B8%80/

上記サイトのソースコードを参考にコーディングしました。
この方法をそのまま利用したほうが簡単でしたら、そちらをご教示いただければ幸いです。

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

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

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

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

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

guest

回答1

0

foreach の前でソートして、foreach 内で出力した数をカウントして4件だけにすればよいのでは。

【【PHP】連想配列とかオブジェクトのソート - B-Teck!】
http://beatdjam.hatenablog.com/entry/2016/06/22/010107

【配列に入れたオブジェクトをソートする(PHP5) - Qiita】
https://qiita.com/7375u@github/items/e80092e24d31ee2156ac

【PHP: usort - Manual】
http://php.net/manual/ja/function.usort.php

投稿2018/02/03 16:18

kei344

総合スコア69364

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問