質問編集履歴

2 削除の取り消し

teratail

teratail score 457

2016/01/13 15:10  投稿

Wordpressでfetch_feedのショートコード化
サイトの仕様上、削除ができないようですのが、このまま放置するのも気が引けるのでこれで〆ます。閲覧ありがとうございました。
Wordpressでショートコードを作成したいのですがなかなか上手く行かず困っており、ご教授を御願いしたく書き込みさせて頂きます。
現在プラグインのExec-PHPを使って投稿画面の本文欄に下記のPHPを直接的に書き込んでいるのですが、第3者にもこの作業をやってもらうに当たり、出来るだけ簡略化したく、これをショートコード化したいのですが四苦八苦している状態です。
下記コードのfeed1~feed6の部分は固定ではなくfeed7やfeed10まである時もあれば、feed1しかない場合もあります。
手短ではありますが、ご教授の程、宜しく御願い致します。
```
<?php include_once(ABSPATH . WPINC . '/feed.php');
  $rss = fetch_feed(array(
  //以下にブログのRSS Feedを記述(複数の場合はカンマ区切り)
  'http://kotori-blog.com/feed1',
  'http://kotori-blog.com/feed2',
  'http://kotori-blog.com/feed3',
  'http://kotori-blog.com/feed4',
  'http://kotori-blog.com/feed5',
  'http://kotori-blog.com/feed6'
  ));
  if (!is_wp_error( $rss ) ) :
      $rss->set_cache_duration(1800);
      $rss->init();
      $maxitems = $rss->get_item_quantity(10);
      $rss_items = $rss->get_items(0, $maxitems);
      date_default_timezone_set('Asia/Tokyo');
  endif;
  ?>
  //ここから表示部分の記述
  <?php echo '<h5>Latest ' . $maxitems . ' Posts</h5>'; ?>
  <dl>
      <?php if ($maxitems == 0) echo '<dt>No items.</dt>';
      else
      foreach ( $rss_items as $item ) : ?>
      <dt><?php echo $item->get_feed()->get_title(); ?></dt>
      <dd>
          <a href='<?php echo $item->get_permalink(); ?>' target="_blank"><?php echo $item->get_title(); ?></a><br />
          <?php echo $item->get_date("Y-n-j"); ?>
      </dd>
      <?php endforeach; ?>
  </dl>
```
  • WordPress

    8914 questions

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

1 本文修正

退会済みユーザー

退会済みユーザー

2016/01/09 23:47  投稿

Wordpressでfetch_feedのショートコード化
Wordpressでショートコードを作成したいのですがなかなか上手く行かず困っており、ご教授を御願いしたく書き込みさせて頂きます。
現在プラグインのExec-PHPを使って投稿画面の本文欄に下記のPHPを直接的に書き込んでいるのですが、第3者にもこの作業をやってもらうに当たり、出来るだけ簡略化したく、これをショートコード化したいのですが四苦八苦している状態です。
下記コードのfeed1~feed6の部分は固定ではなくfeed7やfeed10まである時もあれば、feed1しかない場合もあります。
手短ではありますが、ご教授の程、宜しく御願い致します。
<?php include_once(ABSPATH . WPINC . '/feed.php');
   $rss = fetch_feed(array(
   //以下にブログのRSS Feedを記述(複数の場合はカンマ区切り)
   'http://kotori-blog.com/feed1',
   'http://kotori-blog.com/feed2',
   'http://kotori-blog.com/feed3',
   'http://kotori-blog.com/feed4',
   'http://kotori-blog.com/feed5',
   'http://kotori-blog.com/feed6'
   ));
   if (!is_wp_error( $rss ) ) :
       $rss->set_cache_duration(1800);
       $rss->init();
       $maxitems = $rss->get_item_quantity(10);
       $rss_items = $rss->get_items(0, $maxitems);
       date_default_timezone_set('Asia/Tokyo');
   endif;
   ?>
   //ここから表示部分の記述
   <?php echo '<h5>Latest ' . $maxitems . ' Posts</h5>'; ?>
   <dl>
       <?php if ($maxitems == 0) echo '<dt>No items.</dt>';
       else
       foreach ( $rss_items as $item ) : ?>
       <dt><?php echo $item->get_feed()->get_title(); ?></dt>
       <dd>
           <a href='<?php echo $item->get_permalink(); ?>' target="_blank"><?php echo $item->get_title(); ?></a><br />
           <?php echo $item->get_date("Y-n-j"); ?>
       </dd>
       <?php endforeach; ?>
   </dl>
サイトの仕様上、削除ができないようですのが、このまま放置するのも気が引けるのでこれで〆ます。閲覧ありがとうございました。
  • WordPress

    8914 questions

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

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