質問編集履歴

1 記述ミスがあったので少し修正しました。

sute1989

sute1989 score 10

2016/03/03 14:37  投稿

RSSの取得先URLをカスタムフィールドを使用し任意で変更したい
投稿ページで、それぞれ取得するRSS先を変更する必要があるため、カスタムフィールドに入力したURLをfetch_feed内で読み込んで使用したいと思っています。
```
<?php
include_once(ABSPATH . WPINC . '/feed.php');
$sample01 = get_post_meta($post->ID , 'アドレス1' ,true);
$sample02 = get_post_meta($post->ID , 'アドレス2' ,true);
$sample03 = get_post_meta($post->ID , 'アドレス3' ,true);
$rss = fetch_feed(array($sample01,$sample02,$sample03));
if (!is_wp_error( $rss ) ) :
$maxitems = $rss->get_item_quantity(3);
$rss_items = $rss->get_items(0, $maxitems);
endif;
?>
<?php if ($maxitems == 0) echo '<li>記事はありません。</li>';
else
foreach ( $rss_items as $item ) : ?>
<a href='<?php echo $item->get_permalink(); ?>'><?php echo $item->get_title(); ?></a>
<?php
$first_img = '';
if ( preg_match( '/<img.+?src=[\'"]([^\'"]+?)[\'"].*?>/msi', $item->get_content(), $matches ) ) {
$first_img = $matches[1];
}
?>
<?php if ( !empty( $first_img ) ) : ?>
<a href='<?php echo $item->get_permalink(); ?>'><img src="<?php echo esc_attr( $first_img ); ?>" alt="" style="width:300px;height:auto;"></a>
<a href='<?php echo $item->get_permalink(); ?>'><img src="<?php echo esc_attr( $first_img ); ?>" alt=""></a>
<?php endif; ?>
<?php endforeach; ?>
```
上記のように記述したところ、カスタムフィールドが埋まっている場合はRSSが表示されるようになったのですが、空欄がある場合は「記事はありません」と表示されてしまいます。
投稿ごとに取得したいURLの件数が変わるので、空欄があっても表示できるようにしたいのですが・・・
どなたか解決法が分かる方がいらっしゃったら、知恵をお貸しください。
また、記述でおかしな所があったらご指摘頂けたらと思います。
よろしくお願いいたします。
  • PHP

    27001 questions

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

  • WordPress

    10218 questions

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

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る