Blog

 

2016.05.26 Thursday

WordpressのRSSからカテゴリスラッグを取得したい

物凄い久しぶりに将来の自分のために書いておかなければいけない事があったので記載。
内容は表題のとおり。

WordpressのRSSからカテゴリスラッグを取得したい

  • トップページに下層フォルダにインストールしてあるwpの記事一覧を取得したい。トップページは静的な index.html からスタート。
  • Wordpressのverは 4.5.2 。
  • 記事一覧には記事のカテゴリ別にアイコンを付けたいので、記事のカテゴリスラッグを取得して、クラス名にしたい。
  • 基本的にhtml、cssは理解している、jsはビミョー、phpについては正しい知識を持たない人間が追い詰められている。

書き出したいhtmlは下記のとおり。

<dl class="カテゴリスラッグ">
 <dt>0000/00/00(日付)</dt>
 <dd><a href="個別記事のURL">タイトル</a></dd>
</dl>

さて作業手順を記載。
参考にさせていただいた記事は下記のリンクより。
http://on-ze.com/archives/1615

index.htmlのリストを表示させる所に上記の記事に記載されているphpソースをコピペして、
自分のサイトのhtmlソースに書き換え、index.htmlをindex.phpとして一旦保存。

<?php
$rss = simplexml_load_file('feedのURL');
echo '<ul>';
foreach($rss->channel->item as $item){
 $title = $item->title; $date = date("Y年 n月 j日", strtotime($item->pubDate));
 $link = $item->link; $description = mb_strimwidth (strip_tags($item->description), 0 , 110, "…Read More", "utf-8"); ?>
<li><a href="<?php echo $link; ?>" target="_blank">
 <span class="date"><?php echo $date; ?></span>
 <span class="title"><?php echo $title; ?></span>
 <span class="text"><?php echo $description; ?></span>
</a></li>
<?php } echo '</ul>'; ?>

<?php
 $rss = simplexml_load_file('http://URL/news/?feed=rss2');
 foreach($rss->channel->item as $item){
 $title = $item->title;
 $date = date("Y/m/d.", strtotime($item->pubDate));
 $link = $item->link;
?>
<dl class="カテゴリスラッグ">
<dt><?php echo $date; ?></dt>
<dd><a href="<?php echo $link; ?>"><?php echo $title; ?></a></dd>
</dl>
<?php } ?>

取得するfeedはrss2からなので、
wp/wp-includes フォルダ内にある 「feed-rss2.php」を編集。

wp-include/feed-rss2.phpを編集。
<item>〜</item>内の<?php the_category_rss('rss2') ?> の下あたりに

<?php
 $cat = get_the_category();
 $cat_slug = $cat[0]->category_nicename;
?>
<pubCat><?php echo $cat_slug; ?></pubCat>

を追記。

サイトトップのindex.phpに戻り、下記太字部分を追記修正。

<?php
 $rss = simplexml_load_file('http://URL/news/?feed=rss2');
 foreach($rss->channel->item as $item){
 $title = $item->title;
 $date = date("Y/m/d", strtotime($item->pubDate));
 $link = $item->link;
 $cat_slug = $item->pubCat;
?>
<dl class="<?php echo $cat_slug ?>">
<dt><?php echo $date; ?></dt>
<dd><a href="<?php echo $link; ?>"><?php echo $title; ?></a></dd>
</dl>
<?php } ?>

っという事で無事下記のソースが書き出されました。

<dl class="information">
 <dt>2016/05/19</dt>
 <dd><a href="http://URL/news/0000">Hello world!</a></dd>
</dl>

ああ嬉しい。
今後も絶対使うであろう内容なのでメモメモ。

尚、上記のソースコードにはblog上で見やすくするために全角スペースを入れています。
ご利用の際は必ず全角スペースを削除し、適宜フォーマットしてください。

| WORKS | 23:32 | comments(0) | trackbacks(0) | ▲to TOP |

Related Entry
Comment
Add a comment




Trackback URL
Trackback
Pintarest

▲to TOP