サポート » 使い方全般 » Posts 2 Postsプラグインでカテゴリページに表示させたい

  • 解決済 モグラ

    (@tenpra)


    現在Posts 2 Postsというプラグインを使用し、記事と記事の紐づけを行っております。
    投稿ページでは下記のソースで表示されたのですが、
    カテゴリーページでは表示されませんでした。
    また、カテゴリーページでは件数を2つに表示させたいです。
    カテゴリーページでは書き方が違うのでしょうか?
    ご教授頂けると大変助かります。

    function.php

    
    function my_connection_types() {
        if ( !function_exists( 'p2p_register_connection_type' ) )
            return;
     
        // 登録する
        p2p_register_connection_type(
            array(
                'name' => 'posts_to_pages',
                'from' => 'post',
                'to' => 'post'
            )
        );
    }
    add_action( 'wp_loaded', 'my_connection_types' );
    

    category.php

    
    <?php 
    $args2 = array(
            'connected_type' => 'posts_to_pages',
            'connected_items' => get_queried_object(),
            'nopaging' => true,
            'suppress_filters' => false
    );
    $connected_posts = get_posts( $args2 ); ?>
    <ul class="list">
    <?php
    foreach ( $connected_posts as $post ) {
        setup_postdata( $post ); ?>
        <li>
        <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
        </li>
    <?php }
    wp_reset_postdata();
    ?>
    </ul>
    

    single.phpでは問題なく表示

    • このトピックはモグラが4年、 2ヶ月前に変更しました。

    ヘルプの必要なページ: [リンクを見るにはログイン]

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック投稿者 モグラ

    (@tenpra)

    function.php

    
    function list_post_mach() {
        global $post, $posts;
        $list_post = '';
        ob_start();
        ob_end_clean();
        $output = preg_match_all('/<li>(.*?)<\/li>/', $post->post_content, $matches);
        $list_post = $matches [1] [0];
      
        if(empty($list_post)){
            $list_post = "無し";
        }
        return $list_post;
    }
    

    category.php

    
    <ul class="list">
    <?php echo list_post_mach(); ?>
    </ul>
    

    試しにpreg_match_allで試してみましたが、うまくいかず、、、。

    こんにちは

    get_queried_object() はメインクエリのオブジェクトが返されます。カテゴリーアーカイブを表示中なら、カテゴリーオブジェクトが返されます。
    カテゴリーページの各投稿であれば、get_post() などではどうでしょうか。

    トピック投稿者 モグラ

    (@tenpra)

    ishitakaさん、こんにちは

    無事表示されました!ありがとうございます!!
    すみません、これを2件まで表示させたい場合はどうすれば良いでしょう?

    
    $args2 = array(
            'connected_type' => 'posts_to_pages',
            'connected_items' => get_post(),
            'nopaging' => true,
            'suppress_filters' => false,
           'posts_per_page' => 2
    );
    

    posts_per_page’ => 2
    を指定してみたのですが、うまくいかず、、

    nopaging が true になっていますよ(^^♪

    トピック投稿者 モグラ

    (@tenpra)

    わー!すばらしい!再現出来ました。

    
    $args2 = array(
            'connected_type' => 'posts_to_pages',
            'connected_items' => get_post(),
            'suppress_filters' => false,
           'posts_per_page' => 2
    );
    

    大変助かりました。
    ありがとうございました!

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「Posts 2 Postsプラグインでカテゴリページに表示させたい」には新たに返信することはできません。