サポート » 使い方全般 » カスタム投稿の一覧を固定ページに表示させる方法

  • はじめて投稿させてもらいます。。。

    カスタム投稿をCustom Post Type UIで作成したのですが、その記事の一覧を表示させる方法がわかりません
    技術的には殆どPHPを理解出来ていません。今頑張っている最中です。

    固定ページに本文を書き、その下に記事のタイトルと本文を3つほどを表示させたいです
    ループを使って(?)過去記事も読めるようにしたいと思っています。

    テーマは無料のBiz-vektorの子テーマを作って編集しています。
    Has ArchiveはTrueにしました。
    Post Typeをmemosでスラッグをmemoにしました。
    過去記事等を参考にPHPを作ったりしてみましたが間違っているのかどーにもなりませんでした。。。

    どうすればいいでしょうか?
    曖昧な質問で申し訳ありませんがよろしくお願いします。


    [モデレーターより]
    「【重要】お読みください」フォーラムに投稿されていましたので、フォーラムを移動しました。
    「【重要】お読みください」は、WordPress 日本語サイト運営チームから、みなさんへの連絡等に使用していますので、質問があっても回答がつかない場合があります。

    通常の質問は個別のフォーラムへ投稿してください。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • こんにちは。

    カスタム投稿タイプを作成後、「設定 > パーマリンク設定」の更新は試されましたか?

    どーにもなりませんでした。。。

    が 404ページになる、という意味ならですが。

    スレッド開始 soliy

    (@soliy)

    mizube様

    ありがとうございます。
    説明不足で申しわけありません。。。

    404ページになるわけではないんです。
    「固定ページに本文を書き、その下に記事のタイトルと本文を3つほどを表示させたい」のですが、カスタム投稿の最新の1ページのタイトルと日付のみが表示されるんです。

    過去記事を参考に色々してみたのですが根本的に違っているのか、その表示以外にならないんです。

    mizube

    (@mizube)

    soliyさん

    多分、固定ページのテンプレートに記述されている
    カスタム投稿タイプのクエリが何かおかしいのではと思います。

    <?php
    // page.php
    
    // main loop
    if ( have_posts() ) {
        while ( have_posts() ) {
            the_post();
        }
    }
    
    // custom post type query
    $custom_query = new WP_Query( array(
        'post_type' => 'memos',
        'posts_per_page' => 3,
        'paged' => 1,
        'orderby' => 'date',
        'order' => 'DESC'
    ) );
    
    // custom post type loop
    if ( $custom_query->have_posts() ) {
        while ( $custom_query->have_posts() ) {
            $custom_query->the_post(); // overwrite $post
    ?>
    <div <?php post_class(); ?> id="p<?php the_ID(); ?>">
    <h3 class="memo-title"><?php the_title(); ?></h3>
    <div class="content memo-content">
    <?php the_content(); ?>
    </div>
    </div>
    
    <?php
        }
        wp_reset_postdata(); // reset $post
    }
    ?>

    差し支えなければ固定ページのテンプレートの関係する場所のコードを見せてください。
    表示できるところまで持っていく添削くらいなら出来そうな気がします。

    スレッド開始 soliy

    (@soliy)

    mizube様

    ありがとうございます!
    失礼ながら「固定ページのテンプレートの関係する場所のコード」というのはどのコードでしょうか?固定ページのテンプレートPHPでいいのでしょうか?

    <script src="http://pastebin.com/embed_js.php?i=ffpW1FpY"></script>

    初心者が勉強もそこそこに何してんだーという感じなのですが(本当に申しわけありません。。。)
    よろしくお願いします。

    mizube

    (@mizube)

    soily さん

    返信が遅くなってしまいごめんなさい。
    拝見した所、固定ページのテンプレートファイルはオリジナルのままのようですね。

    どのようにコードを書かれたのかを知りたかったので、
    オリジナルのテンプレートファイルだけではなんとも言えません。

    ちなみにカスタム投稿タイプの投稿のテンプレートは固定ページとは別になります。
    投稿タイプが memos の場合、

    – single-memos.php // memosの個別記事
    – archive-memos.php // memosの記事一覧

    ですね。これらを新規に作成しない場合は single.php や archive.php が使われます。
    それらも存在しない場合は index.php ですね。
    固定ページのテンプレートをベースになさりたい場合は、page.php をコピーして、 single-memos.php にリネームしてそれの手直しをしてみてください。
    記事一覧は index.php または archive.php を元に、必要に応じて修正します。

    ====

    そうではなくて、固定ページの中に memos を表示させたいのでしたら、
    まずはこのコードを固定ページのテンプレートの中でお試しください。

    <?php
    // custom post type query
    $custom_query = new WP_Query( array(
        'post_type' => 'memos',
        'posts_per_page' => 3,
        'paged' => 1,
        'orderby' => 'date',
        'order' => 'DESC'
    ) );
    
    // custom post type loop
    if ( $custom_query->have_posts() ) {
        while ( $custom_query->have_posts() ) {
            $custom_query->the_post(); // overwrite $post
    ?>
    <div <?php post_class(); ?> id="p<?php the_ID(); ?>">
    <h3 class="memo-title"><?php the_title(); ?></h3>
    <div class="content memo-content">
    <?php the_content(); ?>
    </div>
    </div>
    
    <?php
        }
        wp_reset_postdata(); // reset $post
    }
    ?>
5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「カスタム投稿の一覧を固定ページに表示させる方法」には新たに返信することはできません。