サポート » テーマ » 先頭に固定記事だけアイキャッチを表示しない

  • 解決済 komato

    (@komato)


    こんにちは。件名についての質問よろしくお願いいたします。

    使用テーマ:Twenty Twelve

    topページの記事一覧に対して下記の様にアイキャッチを出力しているのですが、「先頭に固定」記事だけをテキストのみの表示にしたいのですがどの様に制御したらよいのか解りません。

    <?php
                         if ( has_post_thumbnail()) {
                         the_post_thumbnail();
                         } else {
                         echo '<img src="' . get_bloginfo('stylesheet_directory') .'/img/no_image.gif" alt="" title="" />';
                         };
                         ?>

    http://ja.forums.wordpress.org/topic/7071?replies=10
    こちらでお話されているように<?php if(!is_single(7)): ?>(仮のID7)をつけたして、
    「id=7以外なら(先頭固定記事以外なら)」アイキャッチ出力。としたく下記のように試してみたりもしたのですが巧くいきませんでした。根本的にphpの知識が足りないため見当違いな事をやっている気もします。

    <?php if(!is_single(7)): ?>
                         <?php
                         if ( has_post_thumbnail()) {
                         the_post_thumbnail();
                         } else {
                         echo '<img src="' . get_bloginfo('stylesheet_directory') .'/img/no_image.gif" alt="" title="" />';
                         };
                         ?>
    <?php endif; ?>

    自分としてはトップページで、先頭固定記事以外の記事にはアイキャッチ表示。そしてアイキャッチが無い時は所定の画像を表示。としたいのですが何か良い方法が有りましたらお教えください。
    よろしくお願いします。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • こんにちは

    style.cssに

    先頭に固定ページ(stickyというクラスが自動的につくので)以下のようにすると、CSSだけで非表示にできます。

    .sticky .entry-header .wp-post-image{
        display:none;
    }

    PHPでやるなら

    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/is_sticky

    if ( has_post_thumbnail() && !is_sticky() ) {

    みたいに

    先頭に固定かどうかを判定するコンディショナるタグがあるので、それを使ってみてください。

    トピック投稿者 komato

    (@komato)

    nobitaさま

    こんばんは。
    早速の返信ありがとうございます!

    先頭固定にクラスがつくのですね。CSSとPHP両方ためしてみたいと思います。
    試してみて解らない所があるかもしれませんが、そのときはまたお伺いさせてください。
    よろしくお願いします。

    トピック投稿者 komato

    (@komato)

    こんにちわ。

    nobitaさま

    試すのが遅くなり報告が遅くなりましてすみません。
    CSSとPHP両方を試してみました。
    CSS設定でアイキャッチの非表示にする事ができました。ありがとうございます!

    ですが、PHPの方は下記の様にしたのですが、巧くできませんでした。

     <?php
            if ( has_post_thumbnail() && !is_sticky() ) {
            the_post_thumbnail();
            } else {
            echo '<img src="' . get_bloginfo('stylesheet_directory') .'/img/no_image.gif" alt="" title="" />';
            };
           ?>

    指定したアイキャッチそのものは非表示にする事はできたのですが、アイキャッチが指定されていないと判断されるのか、「 echo ‘<img src=”‘〜」で指定している画像が表示されてしまいます。

    今回はCSSで設定しようと思いますが、参考までにPHPでの表示方法がありましたら勉強になりますのでお教えいただければと思います。よろしくお願いします。

    私の提示したコードに問題がありそうですね

    テストしていなくて恐縮ですが

    if ( ! is_sticky() ) {
    
        if( has_post_thumbnail() ) {
    
          the_post_thumbnail();
        } else {
    
           echo '<img src="' . get_bloginfo( 'stylesheet_directory' ) .'/img/no_image.gif" alt="" title="" />';
        }
    }

    では、正常に動作しますか?

    トピック投稿者 komato

    (@komato)

    nobitaさま

    正常に動作しました!
    ifとifを重ねてもよいのですね。phpの勉強も初めてみようと思います。

    いろいろと助けていただきありがとうございました!

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「先頭に固定記事だけアイキャッチを表示しない」には新たに返信することはできません。