WordPressで記事に付与された特定のタグに応じて指定した内容を表示する

harada 393views 更新:2014年6月6日

WordPressでタグに関連した内容を表示する方法です。
今回「特定のタグ」はどんどん増えていく想定で、別で管理したかったため外部ファイルで作成しました。

1)特定の内容を表示したい特定のタグリストを別に作ります。

ex.tag.txtというファイル名で下記のような内容を保存しておきます。

Osclass
TestLink
Artifactory
Dolibarr

2)記事のテンプレートで下記のように指定します。

<?php

/* 記事に指定されているタグを配列として取得 */
$posttags = get_the_tags();
$my_array = array();
if ($posttags) {
  foreach($posttags as $tag) {
    $my_array[] = $tag->name ; 
  }
}
$str_my_array = mb_strtolower(implode(",", $my_array));

/* 1)で作成したファイルを読み込んでいます */
$lines = file("http://xxx.xxx.xxx/tag.txt");
$i = 0;
foreach($lines as $line) {
$ossname = $lines[$i];
$trim_ossname = mb_strtolower(preg_replace('/(\s| )/','',$ossname));
$trim_ossname = str_replace("!", "", $trim_ossname);

/* 記事に付与されたタグが、指定したタグかどうかをチェック */
if (strstr($str_my_array,$trim_ossname)) {

/* 記事に関連したURLを作成 */
$ossurl = "http://aws.aipo.com/oss/".$trim_ossname."_ami.html";

/* そのURLが存在するかをチェック */
if(@file_get_contents($ossurl, NULL, NULL, 1, 1)){ ?>
<h3>関連するオープンソース</h3>
<ul class="normal ml5 mb0"><li><a rel="bookmark" href="<?php echo $ossurl; ?>">高速化した <?php echo $ossname; ?>をAWS(Amazon Web Services)上で利用する</a></li>
</ul>
<?php } } $i++; } ?>

広告などを出力する際に使えるのではないかなと思いました。

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません