• 解決済 Naoki-Jo

    (@naoki-jo)


    下記のようなコードをfunctions.php に書いて記事を呼び出しているのですが、
    例えば、記事3件ごとにDivで囲みたいのですがどうすればいいでしょうか。

    出力のイメージは次の通りです。

    <div ID=”ABCD”>
    記事1
    記事2
    記事3
    </div>

    <div ID=”ABCD”>
    記事4
    記事5
    記事6
    </div>

    <div ID=”ABCD”>
    記事7
    記事8
    記事9
    </div>

    よろしくお願いします。

    function printe($atts, $content = null) {
            extract(shortcode_atts(array(
                    "num" => '5',
    "tag" => '',
                    "cat" => ''
            ), $atts));
    
            global $post;
            $myposts = get_posts("tag='.$tag&numberposts=50&orderby=title&order=ASC&category=$cat");
            $retour='
    <p>';
    
    if(count($myposts)){
    	foreach($myposts as $post) :
    		setup_postdata($post);
    		$retour.='<a href="'.get_permalink().'">'.the_title("","",false).'</a>'.get_the_content().'';
    	endforeach;
    	$retour.='</p>';
    }else{
    
    	$retour = '';
    }
    return $retour;
    }
    
    add_shortcode("print", "printe");
2件の返信を表示中 - 1 - 2件目 (全2件中)
  • モデレーター jim912

    (@jim912)

    Naoki-Joさん、こんにちは。

    下記あたりが参考になるかと思います。

    三つ並ぶボックスにそれぞれclassを指定する方法

    トピック投稿者 Naoki-Jo

    (@naoki-jo)

    ありがとうございます。
    次のように書いて、思い通りの出力を得られました。

    function printe($atts, $content = null) {
            extract(shortcode_atts(array(
                    "num" => '5',
    "tag" => '',
                    "cat" => ''
            ), $atts));
    
            global $post;
            $myposts = get_posts("tag='.$tag&numberposts=50&orderby=title&order=ASC&category=$cat");
            $retour='<p>';
    if(count($myposts)){
    $cnt = 0;
    
    	foreach($myposts as $post) :
    
    	$chk = $cnt % 3;
    	if($chk==0){
    	$startdiv='<div ID="pagebreak">';
    	$enddiv='</div>';
    
    	}
    	else{
    	$startdiv='';
    	$enddiv='';}
    
    		setup_postdata($post);
    		$retour.=''.$startdiv.'<a href="'.get_permalink().'">'.the_title("","",false).'</a>'.get_the_content().''.$enddiv.' ';
    
    	$cnt++;
    
    	endforeach;
    	$retour.='</p>';
    }else{
    
    	$retour = '';
    }
    return $retour;
    }
    
    add_shortcode("print", "printe");
2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「n件ごとに記事をDivでくくりたい。」には新たに返信することはできません。