サポート » 使い方全般 » the_titleやget_permalinkを関数の中で使うことはできないのでしょうか?

  • トップページに以下の記述(「NEWS」とタグ付けされている記事の最新順で50件のリンクを表示)をしてうまくいっています。(実際はまだデータが少ないので2件だけ)
    で、「NEWS」以外に「EVENTPRODUCT」とタグ付けされている記事と「BLOG」とタグ付けされている記事も50件ずつトップページにしたいので、
    とりあえずは下記の記述を関数に入れたのですが、するとデフォルト記事のHello world!が2件のみ表示されてしまいました。
    the_titleやget_permalinkを関数の中で使うことはできないのでしょうか?
    代替手段はないでしょうか?

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

    $args = array(
    	'tag' => 'NEWS',
    	'numberposts' => 50,
    	'orderby' => 'post_date',
    	'order' => 'DESC'
    ); 
    
    //memo get_post関数ではタグによる絞込ができない
    $posts = query_posts($args);
    
    echo "<div style=\"margin-left:300px;width:200px;height:200px;overflow: scroll;\">";
    if($posts):
    	echo "<ul>";
    	foreach($posts as $post): setup_postdata($post);
    		echo '<li><a href="' . get_permalink() . '">' . the_title( '' , '' , false ) . '</a></li>';
    	endforeach;
    	echo "</ul>";
    endif;
    echo "</div>";
4件の返信を表示中 - 1 - 4件目 (全4件中)
  • 代替手段の方です。
    関数 get_posts はタグによる絞り込みができます。日本語Codexの get_posts の説明ページにタグ関連のパラメータは見当たりませんけれど「この関数で使えるパラメータについては、WP_Query をごらんください。」と記載があります。そういう訳で、WP_Query の説明ページにある「タグパラメータ」を get_posts に使えます。

    モデレーター Okamoto Hidetaka

    (@hideokamoto)

    $args = array(
    	'tag' => 'NEWS',
    	'numberposts' => 50,
    	'orderby' => 'post_date',
    	'order' => 'DESC'
    );
    $posts = new WP_Query( $args );
    if($posts){
    	echo "<ul>";
    	while ( $the_query->have_posts() ) :
    		$the_query->the_post();
    		echo '<li><a href="' . get_permalink() . '">' . the_title( '' , '' , false ) . '</a></li>';
    	endwhile;
    	echo "</ul>";
    }

    とかどうでしょう?
    query_postsをWP_Queryに変えてみたものですが。

    モデレーター Takuro Hishikawa

    (@hissy)

    WordPressのバージョンは?

    めっちゃ初心者なんで、あってるかどうか不明なんですけど

    運用中のHPを後からワードプレスを入れたため外にソースを書き出していますので、参考になるかわかりませんが。

    home.phpもしくはindex.phpに直接書いてます。

    <ul>
    
           <?php $args = array(
    		'numberposts' => 50,  //表示(取得)する記事の数
    		'post_type' => array( 'post', 'business_weblog' ) , //投稿タイプの指定
    		'tag' => 'NEWS', //タグの指定
    		'category' => -1,-2, //非表示カテゴリー
    		'orderby' => 'modified' //並び替え順(更新順)
    		);
    		$customPosts = get_posts($args);
    		foreach($customPosts as $post):
    		setup_postdata( $post );
    		 ?>
    
            <li>
              <a href="<?php the_permalink() ?>">
                <p class="date-box">
                  <time datetime="<?php echo get_post_modified_time('Y') ?>-<?php echo get_post_modified_time('n') ?>-<?php echo get_post_modified_time('j') ?>" title="<?php echo get_post_modified_time('Y') ?>-<?php echo get_post_modified_time('n') ?>-<?php echo get_post_modified_time('j') ?>更新">
                    <span class="days"><?php echo get_post_modified_time('d') ?></span><!-- 上段(day) -->
                    <span class="mons"><?php echo get_post_modified_time('M') ?></span><!-- 下段(mon) -->
                  </time>
                </p><!-- END P.date-box -->
    
                <div class="column-wrap">
                <h4 title="<?php the_title() ?>|<?php bloginfo('name') ?>"><?php if(mb_strlen($post->post_title)>20) { $title= mb_substr($post->post_title,0,20) ; echo $title. ・・・ ;} else {echo $post->post_title;}?></h4>
                <p class="Begin-Text"><?php echo mb_substr(get_the_excerpt(), 0,50,'UTF-8'); ?></p>
                </div><!-- END div.column-wrap -->
    
              </a>
    
            </li>
    		<?php endforeach; ?>
    
    </ul>

    こんな感じにカスタムしてます。
    不要な個所は消してください。

    P.S 間違っていたらすみません

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「the_titleやget_permalinkを関数の中で使うことはできないのでしょうか?」には新たに返信することはできません。