サポート » 使い方全般 » 必要のない箇所にリンクがついてしまいます

  • 解決済 chatm

    (@chatm)


    アイキャッチ画像と、カスタムフィールドの文字を読み込ませて、サムネイル一覧を作っているのですが、画像が無い場合、文字に必要のないリンクがついてしまいます。
    画像だけパーマリンクで記事に飛ばしたいのに、なかなか切り離せません。
    コードの書き方がおかしいのかもしれませんが、教えていただけましたら助かります。
    コードは下記です。

    <a href="<?php the_permalink(); ?>" ><?php if(has_post_thumbnail()){
      // 投稿サムネイルがある場合
      the_post_thumbnail();  ?> </a>
    
      <?php get_template_part('cfield');}  // カスタムフィールドの文字を表示
    
    else{
      // 投稿サムネイルがない場合
      echo '<img src="' . get_bloginfo('template_url') . '/images/thumbnail.gif" style="text-decoration:none;"/>';
      get_template_part('cfield'); // カスタムフィールドの文字を表示
    } ?>

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • モデレーター jim912

    (@jim912)

    chatmさん、こんにちは。

    アイキャッチ画像にのみリンクを貼りたいのであれば、the_permalinkのリンクは、has_post_thumbnailの条件分岐の内側にある必要があります。

    今だと、条件分岐の成否にかかわらず aタグが出力され、終了タグが最初の条件分岐の中にあるため、リンクが終了せず、カスタムフィールドのテキストにまでリンクが貼られるようになっています。

    また、get_template_partの部分の記述は一緒なので、条件分岐の外に出して共通化できるかと思います。

    検証していませんが、ざっくり下記のようなコードでいかがでしょう。

    <?php if( has_post_thumbnail() ) : ?>
    <a href="<?php the_permalink(); ?>">
    <?php the_post_thumbnail(); ?>
    </a>
    <?php else : ?>
    <img src="<?php bloginfo('template_url'); ?>/images/thumbnail.gif" style="text-decoration:none;"/>
    <?php endif; ?>
    <?php get_template_part('cfield'); ?>

    トピック投稿者 chatm

    (@chatm)

    jim912様、ありがとうございます。リンクが切り離せました!
    the_permalinkの場所が原因だったのですね。
    まだまだ勉強中ですが、少しずつがんばっていきたいと思います。
    この度は教えて頂きましてありがとうございました。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「必要のない箇所にリンクがついてしまいます」には新たに返信することはできません。