サポート » 使い方全般 » WordPressで固定ページにカテゴリー別の記事一覧を表示させたい

  • 解決済 yunyun yunko

    (@ryuunosuke1018)


    WordPressの固定ページのテンプレート(page.php)を使って下記の新着情報一覧のコードを

    カテゴリー別に記事一覧を表示するようにしたいのですが。うまくいきません。

    固定ページでタイトルやスラッグで指定した文字列を使ってカテゴリー別の一覧を表示できないでしょうか。

    ちなみにPHPを含んだ以下のようなコードの一覧を表示させたいです。

    下記のコードは新着記事を14件までを、タイトル、サムネイル、記事を書いた人、日付を一覧で表示するものです。

    <!-- 新着記事表示 -->
    <?php
    $args = array(
    'posts_per_page' => 14 // 表示件数の指定
    );
    $posts = get_posts( $args );
    foreach ( $posts as $post ): // ループの開始
    setup_postdata( $post ); // 記事データの取得
    ?>
    
    <!-- imgTextBox -->
    <div class="imgTextBox">
    <p class="textP"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a><br><span class="postDate"><?php echo get_the_date( $format, $post ); ?></span><span class="writeName"><?php the_author(); ?></span></p>
    <p class="imgP"><a href="<?php the_permalink(); ?>"><?php the_post_thumbnail('thumbnail'); ?></a></p>
    </div>
    <!-- imgTextBox -->
    
    <?php
    endforeach; // ループの終了
    wp_reset_postdata(); // 直前のクエリを復元する
    ?>
    <!-- 新着記事表示 -->

    例えば、ニュースというカテゴリーの記事を固定ページに表示させたいのです。
    固定ページによって表示させるカテゴリー別記事一覧は変えたいのです。

    プラグインは使わない方向で考えています。よろしくお願い致します。

    • このトピックはyunyun yunkoが5年、 5ヶ月前に変更しました。
    • このトピックはyunyun yunkoが5年、 5ヶ月前に変更しました。
13件の返信を表示中 - 1 - 13件目 (全13件中)
  • こんにちは

    get_posts() の ‘category’(カテゴリー ID)や ‘category_name’(カテゴリーのスラッグ)パラメーターで、カテゴリーを指定することができます。
    https://wpdocs.osdn.jp/テンプレートタグ/get_posts

    例:

    <!-- 新着記事表示 -->
    <?php
    $cat_id = get_cat_ID( 'ニュース' );
    if ( $cat_id ) {
    	$args = array(
    		'posts_per_page' => 14, // 表示件数の指定
    		'category' => $cat_id,
    	);
    	$posts = get_posts( $args );
    
    	(省略)
    
    	wp_reset_postdata(); // 直前のクエリを復元する
    }
    ?>
    <!-- 新着記事表示 -->
    • この返信は5年、 5ヶ月前にishitakaが編集しました。
    トピック投稿者 yunyun yunko

    (@ryuunosuke1018)

    ありがとうございます。これをpage.phpに書き込めばいいのでしょうか?

    でもそうなると例えば、ニュース記事のカテゴリー一覧はできたけど、次に映画記事ののカテゴリー一覧を別の固定ページで作りたい場合はどうしたらいいのでしょうか。

    教えていただいたコードの場合だとニュースのカテゴリーの記事の一覧しか見れないような感じなのですが…
    説明が下手ですみません。

    例えば固定ページの名前がニュースならニュースのカテゴリーの記事一覧を表示、固定ページの名前が映画なら映画のカテゴリーの記事一覧を表示にしたいのですが、難しいでしょうか…。

    調べても中々でてこないもので…。

    get_the_title() でタイトルを取得できます。
    https://wpdocs.osdn.jp/関数リファレンス/get_the_title

    トピック投稿者 yunyun yunko

    (@ryuunosuke1018)

    ありがとうございます。
    タイトルではなく、固定ページごとに違うカテゴリーの記事一覧を表示したいのですが、何か分岐かなにかでこの固定ページが表示されたらこのカテゴリー記事一覧を表示することはできないでしょうか。

    $cat_id = get_cat_ID( get_the_title() );

    トピック投稿者 yunyun yunko

    (@ryuunosuke1018)

    ありがとうございます。試してみます。試してまたご報告致します。助かります。

    トピック投稿者 yunyun yunko

    (@ryuunosuke1018)

    何度もすみません。試してみましたが、(省略)の部分にHTMLやPHPを書き込むと固定ページがエラーで表示されなくなってしまいました。

    このページは動作していません
    xxxxxxxxxxx.jp では現在このリクエストを処理できません。
    HTTP ERROR 500

    と表示されてしまいます。こちらでも色々試してみます。

    トピック投稿者 yunyun yunko

    (@ryuunosuke1018)

    	<!-- 新着記事表示 -->
    <?php
    $cat_id = get_cat_ID( get_the_title() );
    if ( $cat_id ) {
    	$args = array(
    		'posts_per_page' => 14, // 表示件数の指定
    		'category' => $cat_id,
    	);
    	$posts = get_posts( $args );
    	foreach ( $posts as $post ): // ループの開始
    setup_postdata( $post ); // 記事データの取得
    ?>
    
    <!-- imgTextBox -->
    <div class="imgTextBox">
    <p class="textP"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a><br><span class="postDate"><?php echo get_the_date( $format, $post ); ?></span><span class="writeName"><?php the_author(); ?></span></p>
    <p class="imgP"><a href="<?php the_permalink(); ?>"><?php the_post_thumbnail('thumbnail'); ?></a></p>
    </div>
    <!-- imgTextBox -->	
    	
    <?php
    endforeach; // ループの終了
    wp_reset_postdata(); // 直前のクエリを復元する
    ?>
    <!-- 新着記事表示 -->

    ためしたのはこれです。教えていただいた部分に

    	foreach ( $posts as $post ): // ループの開始
    setup_postdata( $post ); // 記事データの取得
    ?>
    <!-- imgTextBox -->
    <div class="imgTextBox">
    <p class="textP"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a><br><span class="postDate"><?php echo get_the_date( $format, $post ); ?></span><span class="writeName"><?php the_author(); ?></span></p>
    <p class="imgP"><a href="<?php the_permalink(); ?>"><?php the_post_thumbnail('thumbnail'); ?></a></p>
    </div>
    <!-- imgTextBox -->
    <?php
    endforeach; // ループの終了
    wp_reset_postdata(); // 直前のクエリを復元する
    ?>
    <!-- 新着記事表示 -->

    を追加するとエラーになります。

    デバッグモード(下記ページを参照)でエラーを確認してみてください。
    https://wpdocs.osdn.jp/WordPressでのデバッグ

    トピック投稿者 yunyun yunko

    (@ryuunosuke1018)

    ありうがとうございます!確認してみます!

    トピック投稿者 yunyun yunko

    (@ryuunosuke1018)

    デバッグしてみました。

    解析エラー:構文エラー、予期しないファイルの終了/home/users/2/xxxxxx.xxxxxxxxx/web/web/wp-content/themes/twentyseventeen-child/page.php on line 152

    質問のコードより実際のコードはhtmlコードなどがあるので152とコードが多くなっています。

    if ( $cat_id ) {

    の、波括弧を閉じてますか?

    トピック投稿者 yunyun yunko

    (@ryuunosuke1018)

    すいません!カッコ忘れていました!!表示されました。ケアレスミスです。気をつけます。

13件の返信を表示中 - 1 - 13件目 (全13件中)
  • トピック「WordPressで固定ページにカテゴリー別の記事一覧を表示させたい」には新たに返信することはできません。