• 解決済 aoneissei

    (@aoneissei)


    こんにちは。
    どなたか是非ご教授ください。

    サイトのトップページに「最新情報」という欄があって、
    そこに「recentnews」と「campaign」の2種類のカスタム投稿が表示されるようになっています。

    <?php
    /* カスタム投稿タイプ「最新ニュース」を表示する */
    
    $loop = new WP_Query( array( 'post_type' => array('recentnews', 'campaign'),  'posts_per_page' => 5 ) );
    while ( $loop->have_posts() ) : $loop->the_post();
    ?>
    
     <ul class="custom-recentnews"> 
    
    	<li><span class="date"><?php the_time('Y/m/d') ?> | </span><a href="<?php the_permalink(); ?>" id="post-<?php the_ID(); ?>"><?php the_title(); ?></a>
    
    			</li>
    
    		</ul>
    
    <?php endwhile; ?>

    2種類のカスタム投稿をそれぞれ色分けして表示したいのですが、
    それぞれに違うクラスを適応する方法を教えていただけませんでしょうか。

    よろしくお願い申し上げます。

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • if ('recentnews' == $post->post_type){
        print 'custom-recentnews';
    }

    のような条件分岐をループ内に書けば良いと思います。

    詳細は、公式ドキュメントをごらんください。
    http://wpdocs.sourceforge.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/WP_Query

    トピック投稿者 aoneissei

    (@aoneissei)

    php-webさま

    ご返答誠にありがとうございます。
    上記記述で今から試してみます。

    本当にありがとうございます。
    結果は明後日にご報告させていただきます。

    トピック投稿者 aoneissei

    (@aoneissei)

    php-webさん

    こんにちは先日はご返答誠にありがとうございました。
    頂きましたご回答ですが、どうも私が理解できてないようでうまくいきません。。
    すいませんがもう一度教えていただけますでしょうか。

    「recentnews」の記事がある時はcustom-recentnewsというCSSのクラスを、
    「campaign」の記事がある時はcustom-campaignというCSSのクラスが適応されるようにしたいのですが、

    if ('recentnews' == $post->post_type){
        print 'custom-recentnews';
    }

    上記頂きました記述のprintの後に入る’custom-recentnews’がクラス名になるのでしょうか?

    大変素人な質問で申し訳ございませんがご教授お願いいたします。

    上記頂きました記述のprintの後に入る’custom-recentnews’がクラス名になるのでしょう?

    そういう意図でかきました。

    頂きましたご回答ですが、どうも私が理解できてないようでうまくいきません。。

    うまくいかなかった、というっことですが、具体的に何をして、どうなったのでしょうか。
    例えば、xxx にコードを追加したが、表示は何も変化しなかった、などです。

    トピック投稿者 aoneissei

    (@aoneissei)

    php-webさま

    お世話になります。
    何度もお時間を頂きまして恐縮しております。
    下記が私が書いた記述です。

    <?php
    /* カスタム投稿タイプ「最新ニュース」を表示する */
    
    $loop = new WP_Query( array( 'post_type' => array('recentnews', 'campaign'),  'posts_per_page' => 5 ) );
    while ( $loop->have_posts() ) : $loop->the_post();
    
    if ('recentnews' == $post->post_type){
        print 'custom-recentnews';
    }
    ?>
    
     <ul class="custom-recentnews"> 
    
    	<li><span class="date"><?php the_time('Y/m/d') ?> | </span><a href="<?php the_permalink(); ?>" id="post-<?php the_ID(); ?>"><?php the_title(); ?></a>
    
    			</li>
    
    		</ul>
    
    <?php endwhile; ?>

    上記のように書くと、「recentnews」の投稿が存在する場合はulに指定してあるcustom-recentnewsというクラスが適応されると理解してるんですが、
    上記のような記述だと、custom-recentnewsという文字が

    liの内容の前に表示されてしまいます。下記のような感じです。

    custom-recentnews
    2012/07/26 | 食生活セミナーを実施いたします!

    無知すぎてホントに申し訳ないのですがもう一度教えていただけないでしょうか。

    書く場所が違っていますね。

    if ('recentnews' == $post->post_type){
        print 'custom-recentnews';
    }

    は、custom-recentnews を表示する命令ですから。class の部分に入れる必要があります。
    <ul class=”custom-recentnews”> のcustom-recentnews部分を、条件分岐するコードに変更すれば良いでしょう。

    campaign というカスタム投稿の場合もまとめれば、コードは下記のようになります。

    if ('recentnews' == $post->post_type){
        print 'custom-recentnews';
    } elseif ('campaign' == $post->post_type){
        print 'custom-campaign';
    }

    トピック投稿者 aoneissei

    (@aoneissei)

    php-web様

    すぐに今からやってみます。

    トピック投稿者 aoneissei

    (@aoneissei)

    php-web様

    出来ましたっ!!!!!!
    ホントに何度もお時間をとらせてしまい申し訳ございませんでした。

    嬉しいです。本当にありがとうございます。

8件の返信を表示中 - 1 - 8件目 (全8件中)

トピック「2種類のカスタム投稿をそれぞれ色分けして表示したい」には新たに返信することはできません。