サポート » プラグイン » exec-phpを用いてカスタムポストタイプの一覧表示

  • 解決済 hrkisa

    (@hrkisa)


    exec-phpを利用すると、固定ページ内でPHPがかけると云うことなので、現在固定ページ内に以下のコードを書いています。

    <ul>
    <?php $posts = get_posts('post_type=test&orderby=date&order=DESC&numberposts=25');
    			foreach($posts as $post){
    			setup_postdata($post);
    ?>
    			<li><?php echo get_the_date() ;?>-<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
    <?php } ?>
    </ul>

    実際に表示されるページを見てみると、カスタムポストタイプ名『test』の一覧では無く、別の固定ページが25回並んでしまいます。
    テンプレートファイルに直接記述する以外の方法で、testの一覧を表示させることは出来ないでしょうか?

    ご教示よろしくお願い致します

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • $posts as $post
    がメインのループとかぶっちゃうのかもです。

    $posts や $post 以外の変数に置き換えたらどなるでしょう?

    トピック投稿者 hrkisa

    (@hrkisa)

    ご指摘ありがとう御座います。
    対応して、以下のように書き換えてみました。

    <ul>
    <?php $test_posts = get_posts('post_type=test&orderby=date&order=DESC&numberposts=25');
    	foreach($test_posts as $test_post){
    	print_r($test_post);
    	setup_postdata($test_post);
    ?>
    	<li><?php echo get_the_date() ;?>-<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
    <?php } ?>
    </ul>

    この時、print_r($test_post);で表示される物は想定通りの表示になっています。
    しかし、次の<li><?php echo get_the_date() ;?>-<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>で表示される物が、該当固定ページの物になっています。

    setup_postdataが入れ子になって居るから動かないのかな・・・?
    うまいやり方等有れば、ご教示よろしくお願い致します。

    get_the_date()やthe_permalink()では取るものがちがいますね。現在の投稿を取得してしまいます。
    print_r($test_post) で正しい値が取れているということなので、
    $test_post->取りたい値
    でオブジェクトから受け取ってください。

    トピック投稿者 hrkisa

    (@hrkisa)

    setup_postdataで解決すると思ってたのですが、甘かったですか・・・

    頂いた方法で無事実装出来ました
    ありがとう御座いました

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「exec-phpを用いてカスタムポストタイプの一覧表示」には新たに返信することはできません。