[wordpress]特定のカテゴリの時だけ投稿日などを非表示にする方法(テンプレートキング by ファーストサーバのベーシックデザインの場合)

wordpress,Web開発

ある特定のカテゴリの場合のみ投稿日や投稿者の情報を消したい場合ってありますよね。今回は「テンプレートキング by ファーストサーバ」の「ベーシックデザイン」で作られたサイトの「製品」カテゴリの場合だけ投稿日を消す方法をご紹介したいと思います。

概要説明

とある企業様のケースなのですが、Wordpressの投稿ページに多くの製品を登録されていました。表示させると以下の状態です。

はじめはCSSの「display: none;」を使って消そうかとも思ったのですが、どうやら「新着情報」も投稿データを使っている様で、こちらの日付は残したいようです。

そこでPHPの条件分岐で「in_category」を使用し、「カテゴリ:製品(products)」の場合のみ消すようにコーディングしました。

対応方法

まず編集しないといけない場所がどこか探します。最初にChromeのデベロッパーツールで要素の名前を探します。

居ました♪ クラス名が「entry-meta」となっている場所を探せばよさそうです。

サーバー上でgrepして探します。おそらく以下の「single.php」赤枠部分だろうと検討をつけます。

そこでWordpressの「in_category」関数を使用して、以下の様に編集しました。

single.php
<div class="entry-meta">

<?php if ( ! in_category('products’) ) : ?><?php fsvbasic_entry_meta(); ?><?php endif; ?>

<?php if ( is_user_logged_in() ) : ?><?php edit_post_link( __( 'Edit’, 'fsvbasic’ ), '<p class="post-edit-link-base">’, '</p>’ ); ?></p><?php endif; ?>

</div><!– .entry-meta –>

これで、「カテゴリ:製品(products)」の場合のみ投稿日が消えました♪

類件対応

同様にアーカイブインデックスページにも日付が表示されていますね。こちらも削除しましょう。

こちらは「archive.php」から呼び出されている「content.php」の中に居ました。

content.php
<div class="entry-summary">

<h2 class="excerpt-title"><?php if( ! in_category('products’) ) { echo get_the_date(); } ?>&nbsp;&nbsp;&nbsp;&nbsp;<a href="<?php the_permalink(); ?>" rel="bookmark"><?php the_title(); ?></a></h2>

<!– p><?php // the_excerpt(); ?></p –>

</div><!– .entry-summary –>

これで、以下の様に投稿日が表示されなくなります。

Print Friendly, PDF & Email