サポート » 使い方全般 » Newsのトップページのみ投稿数を5表示されるようにしたい。

  • 解決済 morimorinao

    (@morimorinao)


    /**
    * トップページのみ表示する最大投稿数を変更します。
    */
    function change_home_posts_per_page( $query ) {
    // 管理画面、またはメインのループでない場合中断
    if ( is_admin() || ! $query->is_main_query() ) {
    return;
    }

    // トップページは表示件数を5件にする
    if ( $query->is_home() ) {
    $query->set( ‘posts_per_page’, 5 );
    return;
    }
    }
    add_action( ‘pre_get_posts’, ‘change_home_posts_per_page’ );

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

11件の返信を表示中 - 1 - 11件目 (全11件中)
  • WordPress初心者です。

    functions.phpに
    /**
    * トップページのみ表示する最大投稿数を変更します。
    */
    function change_home_posts_per_page( $query ) {
    // 管理画面、またはメインのループでない場合中断
    if ( is_admin() || ! $query->is_main_query() ) {
    return;
    }

    // トップページは表示件数を5件にする
    if ( $query->is_home() ) {
    $query->set( ‘posts_per_page’, 5 );
    return;
    }
    }
    add_action( ‘pre_get_posts’, ‘change_home_posts_per_page’ );
    を記述しても反映されないです。

    Newsのトップページ以外は、投稿数6表示されるようにしたい。

    wordpress初心者です。何度トライしてもうまくいかないです。
    よろしくお願いいたします。

    is_paged()で判定できます。
    https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/is_paged

    
    function change_home_posts_per_page( $query ) {
    // 管理画面、またはメインのループでない場合中断
    if ( is_admin() || ! $query->is_main_query() ) {
    return;
    }
    // トップページは表示件数を5件にする
    if ( $query->is_home() && !is_paged() ) {
    $query->set( 'posts_per_page', 5 );
    }else{
    // トップページ以外は表示件数を6件にする
    $query->set( 'posts_per_page', 6 );
    }
    return;
    
    }
    add_action( 'pre_get_posts', 'change_home_posts_per_page' );
    

    manbo様

    回答していただきありがとうございます。しかし、プログラムをコピペしても、トップページは、反映されないです。
    どうすれば、トップページ反映されますでしょうか?
    よろしくお願いいたします。

    どのような状態か分からないですがis_home()is_front_page()に変えたらどうでしょう?
    それで出来なければトップページを表示しているテンプレートのコードを教えてください。
    コードはcodeを押して出てくるシングルクォートの間に入力してください。

    manbo様

    何度も回答していただきありがとうございます。is_front_page()に変更しましたが、反映されなかったです。
    申し訳ないです。wordpress初心者で、トップページを表示しているテンプレートのコードをどうやって調べたらいいのかわからないです。
    教えていただけますでしょうか?
    よろしくお願いいたします。

    サイトのURLが書かれてますが、そちらのサイトのことでしょうか?
    二ュ―ス一覧の最初のページの上部に大きいサムネイルの記事があり、その下に小さいサムネイルの記事が5つありますが、追加したコードを外すとそれが6件になりますか?
    はたまた大きいサムネイルの記事を含めて6件なのでしょうか?
    大きいサムネイルの記事は小さいサムネイルの記事とは別の方法で出力されているように思いますが、どうでしょう?

    サイトの構成がいまいちよくわかりませんが、テンプレート的にはindex.phpかcategory.phpあたりではないでしょうか?

    サイトのURLが書かれてますが、そちらのサイトのことでしょうか? はい。そうです。
    http://led.led-tokyo.co.jp/news/ ⬅️こちらがNewsのトップページです。
    追加したコードを外すと5件のままです。
    大きなサムネイルを含めて5件です。

    index.phpのコードです。

    <?php get_header(); ?><section class=”indexBtn defWidth mt50 cf”><div class=”animateBox w48per fll”><div class=”fadeCover”></div>/products/”>/asset/img/img_index_product.jpg” alt=”Products” width=”100%”><h2>Products</h2></div><div class=”animateBox w48per flr”><div class=”fadeCover”></div>/rental/”>/asset/img/img_index_rental.jpg” alt=”Rental” width=”100%”><h2>Rental</h2></div><div class=”animateBox clear”><div class=”fadeCover”></div>/works/”><picture><source media=”(max-width:599px)” srcset=”<?php echo get_template_directory_uri(); ?>/asset/img/sp_img_index_cases.png”>/asset/img/img_index_cases.jpg” alt=”Works” width=”100%”></picture><h2>Works</h2></div></section><script>jQuery(function($){$(window).scroll(function(){$(‘.animateBox’).each(function(){var imgPos = $(this).offset().top;var scrolls = $(window).scrollTop();var windowHeight = $(window).height();if(scrolls > imgPos – windowHeight + 200) {$(‘.fadeCover’,this).addClass(‘fadeIn’);$(‘img’,this).addClass(‘opacity1’);}})})})</script><section class=”index_news defWidth”><h1>NEWS</h1>

    </section><section class=”index_slider bgGray”><div class=”defWidth”><div class=”sliderBox”><ul class=”sliderIndex”>

  • /asset/img/slider/img_index_slider1.jpg” alt=”スライダー画像”>
  • /asset/img/slider/img_index_slider2.jpg” alt=”スライダー画像”>
  • /asset/img/slider/img_index_slider3.jpg” alt=”スライダー画像”>
  • /asset/img/slider/img_index_slider4.jpg” alt=”スライダー画像”>
  • /asset/img/slider/img_index_slider5.jpg” alt=”スライダー画像”>
  • <script>$(function() {$(‘.sliderIndex’).slick({fade: true,autoplay: true,autoplaySpeed: 5000,});});</script></div><h3>演出から屋外看板まで</h3><p>LEDビジョンの最大の特徴は圧倒的な明るさです。</p><p>モニター等の5倍以上の明るさがあるため、太陽の光があたっても鮮明な映像を映すことができます。</p><p>インパクトある映像を表現したり、イベントなどの迫力ある演出を実現できます。</p><p>また、パネルの組み合わせが自由にできるため大きさは無限大で様々な形にも対応できます。</p></div></section><?php get_footer(); ?>

    category.phpはないです。

    大きいサムネイルの記事は小さいサムネイルの記事とは別の方法で出力されているように思いますが、どうでしょう?
    こちらの件については、確認してみます。

    よろしくお願いします。

大きいサムネイルの記事は小さいサムネイルの記事とは別の方法で出力されているように思いますが、どうでしょう?
こちらの件は、同じ方法で出力してあります。

manbo様

is_archive()に変更したら、できました。
ありがとうございました。

え~っと…
解決策になっていますが解決したんでしょうか?
コードはシングルクォートの間にと書いたんですが…
あと、今見たら大きいサムネイルの記事を含めて5件ですが、その前に見た時は6件になっていました。
でも目的はニュース一覧の最初のページが5件になるようになので解決したんでしょうね、きっと。

と、投稿してからレイアウト崩れで別の場所に解決済のコメントがあるのがわかりました。

  • この返信は1 年、 7 ヶ月前に  manbo さんが編集しました。
11件の返信を表示中 - 1 - 11件目 (全11件中)
  • トピック「Newsのトップページのみ投稿数を5表示されるようにしたい。」には新たに返信することはできません。