質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Q&A

解決済

1回答

392閲覧

front-pageの該当部分に特定のカテゴリー以外の投稿を3つ表示させたい

kentaros

総合スコア8

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

0グッド

0クリップ

投稿2020/05/12 22:26

発生している問題・エラーメッセージ

wordpressのfront-page.phpの一部に「お知らせ」というカテゴリー(slugはinfo)以外の投稿を3つ表示させたいと思っているのですが、 2つしか表示されません。 おそらく、この2つしか表示されないのは、 管理画面にある設定の表示設定の「1ページに表示する最大投稿数」を4投稿に設定していて、 お知らせカテゴリーの投稿が2つあるので、 最大投稿数4 - お知らせカテゴリー投稿数2 = 2つ というのが原因と思われます。 つまり、お知らせカテゴリー投稿数が増えればfront-page.phpに投稿の表示がなくなってしまいます。 今回解決したいのは、 お知らせカテゴリーの投稿数に関係なく、front-page.phpの該当部分にお知らせカテゴリー以外の投稿を3つ表示させる という課題です。

該当のソースコード

php

1<section class="blog_wrapper"> 2 <div class="blog_wrapper_header"> 3 <div class="bwh_left"> 4 <h3>Blog</h3> 5 <p>スタッフブログ</p> 6 </div> 7 <div class="bwh_right wh_right"> 8 <a href="<?php echo site_url('/blog'); ?>">View all</a> 9 </div> 10 </div> 11 <div class="blog_wrapper_contents"> 12 <?php 13 $homepagePosts_two = new WP_Query(array( 14 'orderby'=>'modified',//更新日順 15 'order'=> 'DESC',//降順(最新の記事が上に) 16 'posts_per_page' => 3 //表示件数3 17 )); 18 19 while($homepagePosts_two->have_posts()){ 20 $homepagePosts_two->the_post(); ?> 21 <?php if(!in_category('info')) : ?> 22 23 <div class="bw_content"> 24 <div class="bwc_left"> 25 <img src="<?php echo get_template_directory_uri(); ?>/images/wepostyle1.png" alt=""> 26 </div> 27 <div class="bwc_right"> 28 <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3> 29 <p><?php if(has_excerpt()){ 30 echo get_the_excerpt(); 31 }else{ 32 echo wp_trim_words(get_the_content(),4); 33 } ?><a href="<?php the_permalink(); ?>" class="nu gray">続きを読む</a></p> 34 </div> 35 </div> 36 37 <?php endif ; ?> 38 <?php } ?> 39 </div> 40 </section> 41 42

試したこと

new WP_Queryが問題だと思い通常のループ文にしてみたところ、
通常の投稿すら表示されなくなってしまったので、それは関係ないかと思っています。

補足情報(FW/ツールのバージョンなど)

バージョンは一番新しいものです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

管理画面にある設定の表示設定の「1ページに表示する最大投稿数」を4投稿に設定していて、

WP_Queryで「'posts_per_page' => 3」を指定しているので、上記の設定は関係ないです。
というか、4件とって来た中からinfoを抽出するから問題なので、WP_Queryの段階でinfo以外を抽出すればいいのではと思います。

PHP

1$homepagePosts_two = new WP_Query(array( 2 'orderby'=>'modified',//更新日順 3 'order'=> 'DESC',//降順(最新の記事が上に) 4 'posts_per_page' => 3, //表示件数3 5 'category__not_in' => array( 2 ), // infoのIDを指定 6)); 7 8// if(!in_category('info')) : ← info以外を抽出しているので、この条件式は要らない 9

投稿2020/05/13 00:15

rjunakc

総合スコア368

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kentaros

2020/05/13 01:52

「'category__not_in' => array( 2 ),」これで解決することができました! 非常に助かりました。有難うございます!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問