任意のカテゴリのみを表示させる ~WordPress編~

電脳備忘録

wordpressで構築したサイトにKaiStyleというプラグインを入れて、携帯でも閲覧できるようにしているサイトがあります。
同僚から携帯から明日アクセスしたときだけエントリーが表示されるようにしたいとの依頼を受けました。
正直wordpressを触らなくなって久しいので解決までちょっと時間がかかりましたが、なんとか要求通りのものを用意することが出来ました。
以下、自分用備忘録。(参照は自己責任でお願いします)

KtaiStyleのテンプレートhome.phpに下記の一文を追記。
in_category('4')の4を非表示にしたいカテゴリのIDに変更します。
下記のコードでは表示にしたいカテゴリ「モバイル」のIDは4なので4を設定。

<!-- mobile contetnts 3件表示-->
<?php query_posts('showposts=3');?>
<?php if(have_posts()) : while (have_posts()) : the_post();?>
<?php if(in_category('4')): ?>
<a href=""<?php" the_permalink();?>"><?php the_title();?></a><br / />
<?php endif; ?>
<?php endwhile;endif;?>

showpostsの設定値を変更することで表示件数を制御。

<?php query_posts('showposts=3');?>

これで携帯でサイトにアクセスしたとき「モバイル」カテゴリーのエントリーの3件が表示されるようになった。
このままだと、PCからみたとき「モバイル」カテゴリーのエントリーが表示されてしまうので、表示しないように。これはカスタマイズされたテンプレートのindex.phpをいじることで対応。

<ul> <?php
query_posts('showposts=10');?> <?php if(have_posts()) : while
(have_posts()) : the_post();?> <li><span>[<?php
the_time('Y年n月j日'); ?>] </span><a href=""<?php"
the_permalink();?>"><?php the_title();?></a> <?php
endwhile;endif;?> </ul>

下記の一文を追加して

<?php if (in_category('46')) continue; ?>

こんな感じに

<ul> <?php
query_posts('showposts=10');?> <?php if(have_posts()) : while
(have_posts()) : the_post();?>
<?php if (in_category('46')) continue; ?>
<li><span>[<?php the_time('Y年n月j日'); ?>]
</span><a href=""<?php" the_permalink();?>"><?php
the_title();?></a> <?php endwhile;endif;?> </ul>

これで携帯でサイトを閲覧したときに「モバイル」カテゴリのエントリーが表示され、PCからアクセスしたときは表示されないようになりましたとさ爽快爽快・・・。

広告

ブログの維持費に充てるでございます・・・。