サポート » テーマ » 本文が無い場合の条件分岐

  • 解決済 sarasarari

    (@sarasarari)


    新着情報などのお知らせを表示する際に、投稿のタイトルのみで、本文が無い場合に
    投稿記事へのリンクを付けたくないのですが、うまくいきません。

    以下はリンクを付けたものですが、どのように条件分岐をしたら良いかご教授お願い致します。

    <?php
      $args = array(
        'post_type' => 'post',
        'posts_per_page' => 5
      );
    ?>
    <?php $myposts = get_posts($args); ?>
    <?php if($myposts): ?>
    <?php foreach($myposts as $post) : setup_postdata($post); ?>
    
    <?php
    $cats = get_the_category();
    $cat = $cats[0];
    $cat_id   = $cat->cat_ID;
    $cat_name = $cat->cat_name;
    ?>
    		<li class="clickable">
    			<a href="<?php the_permalink(); ?>">			
    			<div class="newsCate">
    			<?php if ( in_category(5) ): ?>
    			<span class="nc04">
    			<?php elseif ( in_category(4) ): ?>
    			<span class="nc03">
    			<?php elseif ( in_category(3) ): ?>
    			<span class="nc02">
    			<?php else: ?>
    			<span class="nc01">
    			<?php endif; ?>
    			<?php echo $cat_name;?></span></div>
    			<div class="newsDate"><?php the_time('Y.m.d')?></div>
    			<div class="newsComent"><?php the_title();?></div>			
    			</a>
    		</li>
    
    <?php endforeach; ?>
    <?php endif; ?>
    <?php wp_reset_postdata(); ?>
3件の返信を表示中 - 1 - 3件目 (全3件中)
  • こんにちは
    the_permalinkを使っているようなので、以下のフィルタが使えるかもしれません。

    
    add_filter('the_permalink', 'remove_link_url', 10,2);
    
    function remove_link_url($url, $post){
    //$postが空の場合もあるみたいなので、以下で取得
    	$post_id = get_the_ID();
    	if( empty( get_post($post_id)->post_content) ){
    		return '#disabled';
    	}
    
    	return $url;
    }
    

    css
    詳細度は、調整してくださいね

    a[href="#disabled"]{
    	color:#000;
    	cursor: unset;
      text-decoration: none;
    	pointer-events:none;
    }
    トピック投稿者 sarasarari

    (@sarasarari)

    nobita (@nobita)様

    ありがとうございます。

    試してみましたが、hoverもついてしまい、カーソルもポインターになってしまいました。
    URLに#disabledがついてしまうため、
    吐き出すタグにaタグ自体を付けないのは無理でしょうか?

    よろしくお願いいたします。

    トピック投稿者 sarasarari

    (@sarasarari)

    <?php if( !get_the_content() ) : ?>

    を使用して、意図する事が実現できました!
    ありがとうございました。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • このトピックに返信するにはログインが必要です。