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

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

ただいまの
回答率

87.77%

TOPページのコラムの表示を3つにしたい

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 299

score 4

https://test1.veronica9.com/columnlist/
上記の1ページに投稿一覧を6つ表示したかったので、

wordpressの表示設定の1ページに表示する最大投稿数を6にすると、
TOPページのコラムの表示も6つになってしまい、

https://test1.veronica9.com/

TOPページのコラムの投稿一覧の表示を3つにする場合は、
どのようにすればよいか、お分かりになられる方がいらっしゃれば、
ご教授頂けますと幸いです。

よろしくお願い致します。

home.php

<section class="column">
<?php get_template_part('include/liststyle/post-list-mag'); ?>
</section>

include/liststyle/post-list-mag.php
⇓ 

<?php if( ! get_theme_mod('toppost_list_cat') ) :?>
<div class="toppost-list-box-simple">
    <div class="post-list-mag">

        <?php
            $ad_infeed_pc_num = get_option('ad_infeed_pc_num');
            $ad_infeed_sp_num = get_option('ad_infeed_sp_num');
        ?>
        <?php if( isset($ad_infeed_pc_num) || isset($ad_infeed_sp_num) ) :?>
            <?php get_template_part('include/liststyle/parts/post-list-mag-parts-infeed'); ?>
        <?php else: ?>
            <?php while (have_posts()) : the_post(); ?>
            <?php get_template_part('include/liststyle/parts/post-list-mag-parts'); ?>
            <?php endwhile; ?>
        <?php endif; ?>

        <section class="pager-top">
            <?php if( function_exists('responsive_pagination') ) { responsive_pagination( $wp_query->max_num_pages ); } ?>
        </section>
    </div>
</div>
<?php else: ?>
<div class="toppost-list-box">
    <div class="column_back">
    <h2 class="column_title">コラム
<!--     <img src="https://test1.veronica9.com/wp-content/uploads/2021/01/column.png" alt="Step to C"> -->
        </h2></div>
    <?php
        $toppost_list_cat = get_theme_mod('toppost_list_cat');
        $list_cat_id = explode(",", $toppost_list_cat);
        $list_cat_num = 0;
        $list_cat_num2 = 0;
    ?>
    <input type="radio" name="switch" id="tab-1" checked>
    <input type="radio" name="switch" id="tab-2">
    <input type="radio" name="switch" id="tab-3">
    <input type="radio" name="switch" id="tab-4">
    <input type="radio" name="switch" id="tab-5">

    <ul class="tabBtn-mag">
        <li><label for="tab-1"><?php echo get_theme_mod('jin_toppost_list_name','最新記事'); ?></label></li>
        <?php while( isset($list_cat_id[$list_cat_num2]) ): ?>
        <?php
            // カテゴリー情報を取得
            $category_tab = get_category($list_cat_id[$list_cat_num2]);
            $cat_name_tab = $category_tab->cat_name;
        ?>
        <li><label for="tab-<?php echo $list_cat_num2+2; ?>"><?php echo $cat_name_tab; ?></label></li>
        <?php $list_cat_num2++; ?>
        <?php endwhile; ?>
    </ul>
    <div class="toppost-list-box-inner">

        <div class="post-list-mag autoheight">

            <?php
                $ad_infeed_pc_num = get_option('ad_infeed_pc_num');
                $ad_infeed_sp_num = get_option('ad_infeed_sp_num');
            ?>
            <?php if( isset($ad_infeed_pc_num) || isset($ad_infeed_sp_num) ) :?>
                <?php get_template_part('include/liststyle/parts/post-list-mag-parts-infeed'); ?>
            <?php else: ?>
                <?php while (have_posts()) : the_post(); ?>
                <?php get_template_part('include/liststyle/parts/post-list-mag-parts'); ?>
                <?php endwhile; ?>
            <?php endif; ?>

            <section class="pager-top">
                <?php if( function_exists('responsive_pagination') ) { responsive_pagination( $wp_query->max_num_pages ); } ?>
            </section>
        </div>


        <?php while( isset($list_cat_id[$list_cat_num]) ): ?>

        <div class="post-list-mag autoheight">

            <?php
                $child_categories = get_term_children($list_cat_id[$list_cat_num], 'category');
                $cat_url = get_category_link($list_cat_id[$list_cat_num]);
                $cat_url = rtrim($cat_url, '/');
                $parent_cat_id = $list_cat_id[$list_cat_num];

                if( $child_categories ){// 子カテゴリーがあるとき
                    $all_cat_id = $list_cat_id[$list_cat_num];
                    $child_categories_total = count($child_categories);

                    if( get_category($all_cat_id)->parent == 0 ){
                        foreach ($child_categories as $key => $value) {
                            $all_cat_id .= ','.$value;
                            $child_cat_count[$key] = get_category($value)->count;
                        }
                        $cat_count_child = 0;
                        for( $i = 0 ; $i < $child_categories_total; $i++){
                            $cat_count_child += $child_cat_count[$i];
                        }
                        $cat_count = $cat_count_child + get_category($parent_cat_id)->count;
                    }else{
                        foreach ($child_categories as $key => $value) {
                            $all_cat_id .= ','.$value;
                            $child_cat_count[$key] = get_category($value)->count;
                        }
                        $all_cat_id_each = explode(",", $all_cat_id);
                        $all_cat_id2 = count($all_cat_id_each);
                        $cat_count_child = 0;
                        for( $i = 0 ; $i < $all_cat_id2 - 1; $i++){
                            $cat_count_child += $child_cat_count[$i];
                        }
                        $cat_count = $cat_count_child + get_category($parent_cat_id)->count;
                    }
                }
                else{// 子カテゴリーがないとき
                    $cat_count = get_category($parent_cat_id)->count;
                }
                $args = array(
                    'cat' => array($parent_cat_id),
                    'posts_per_page' => get_option('posts_per_page'),
                );
                $the_query = new WP_Query( $args );
            ?>
            <?php while ( $the_query->have_posts() ) : $the_query->the_post() ?>
            <?php
                // カテゴリー情報を取得
                $category = get_the_category();
                $cat_id   = $category[0]->cat_ID;
                $cat_name = $category[0]->cat_name;
            ?>

            <?php get_template_part('include/liststyle/parts/post-list-mag-parts'); ?>

            <?php endwhile; ?>

            <?php if( isset( $cat_url ) && $cat_count > get_option('posts_per_page') ) :?>

                <?php if( strstr( $cat_url,'/?' ) == false ): ?>
                <div class="more-cat">
                    <div class="more-cat-button ef"><a href="<?php echo $cat_url; ?>/page/2/"><span>next</span></a></div>
                </div>
                <?php else: ?>
                <div class="more-cat">
                    <div class="more-cat-button ef"><a href="<?php echo $cat_url; ?>&paged=2"><span>next</span></a></div>
                </div>
                <?php endif; ?>
            <?php endif; ?>
        </div>

    <?php $list_cat_num++; ?>
    <?php endwhile; ?>

    </div>

</div>
<?php endif; ?>
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • m.ts10806

    2021/03/12 18:33

    コードやエラーはマークダウンのcode機能を利用してご提示ください。
    https://teratail.com/questions/238564

    キャンセル

回答 2

check解決した方法

0

functions.phpに下記のコードを記述したら解決しました。

function change_posts_per_page($query) {
    if ( is_admin() || ! $query->is_main_query() )
        return;

    if ( $query->is_home() ) { /* アーカイブページの時に表示件数を3件にセット */
        $query->set( 'posts_per_page', '3' );
    }
}
add_action( 'pre_get_posts', 'change_posts_per_page' );

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

追記 セルフ解決の速さを見るに、ご自身で組まれたものでしょうか。
カウンセラーよりもエンジニアをされることをおすすめしたいんですがっ
気合い入れて書いた下の文章が無駄になりましたよっと。しくしく。
レスポンシブ気にした方が良いですよ~とだけ負け惜しみをしておきますw

自力で解決されてしまったようなので、以下駄文です。

ちょっと拝見させていただきましたが、これだけがっつり書いてあると、
質問者さんが組まれたならご自身で分かるかなと思いますので、
駆け出しのフリーランスさんにでも依頼された感じでしょうか?

レスポンシブの対応をどうしようかと思い確認したんですが、
リキッドデザイン(どんな幅でもOK)になっていないのは仕方ないとしても、
スマホにもタブレットにも対応されていないようなので、
記事数がどうのこうのよりもまずそちらを解消された方が良いかと存じます。

スピリチュアル系や人生相談系、お悩み解決系、きらきら生活系…etc
スマホに対応していないとターゲット的にスルーされちゃいますし、
見た目やフィーリングが極めて重要になってきますので、
基本的にスキルが無い場合はご自身で組まれることをおすすめしません。

無料で解消するとかなりマズそうな質問だと感じましたので、
CSSだけで誤魔化す方法で我慢してください。
「トップページの記事の4つ目からは隠れていてね」という意味になります。※厳密には違いますが。

.toppost-list-box .post-list-item:nth-child(n+4) {
    display: none;
}

以下蛇足です。

コーチングやカウンセリングで集客をされるのであれば、
サービスには対価が必要だということを十分に理解されておられると思いますので、
出来そうな人に有償にて依頼してあげてくださると助かります。

PHPで何かをするのではなくて、
デザインを司るCSSの方で制御してあげるという方法を取ると、
フロントエンドの方でも修正対応が可能になりますので、
報酬もバックエンドの方に依頼されるよりも多少お得になるかなぁ?と思います。

直接的な解決方法だけでなく、こういった変わり種の対処方法も経験しておくと、
人生をより豊かにできるかもしれません。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2021/03/12 20:41

    ご回答、アドバイス頂き、どうもありがとうございます。
    とても参考になりました。CSSでも消せるんですね。

    すみません。
    自分で調べてコードをコピーして張ったら
    偶然解決してしまったので、自己解決になってしましましたが、

    気持ち的には、amiya-seさまにベストアンサーにしたいぐらいです。
    また何かございましたら、よろしくお願い致します。

    キャンセル

  • 2021/03/12 20:51

    偶然ですかっ!?
    何たる強運!持ってますね~

    PHP側で記事を絞るのが正解ですよっ
    CSSで見えなくしても記事は出ている為、多少速度に違い出ますから。
    あとはSEO上、あまり隠さない方が良いらしいので、元から変更できるならその方がベストです!!

    ご自身のサイトを制作されているのかな?
    僕不要そうですが、また見かけたときにお手伝いできそうなら挑戦させていただきます!
    頑張ってくださいね~
    ではではっ

    キャンセル

  • 2021/03/12 21:24 編集

    大団円ぽい雰囲気の中、空気読んでなかったら申し訳ないのですが、
    >質問者さん
    質問、回答が編集できるのはご存知の通りですが、
    「解決済み」とした質問を「受付中」に戻すこともできます。
    つまり「ベストアンサーを付け直す」ことも可能です。
    自己解決は自身の理解と今後同じような問題を抱えた人のためになるので残しておいて然るべきですが、
    「ベストアンサー」はそれとは別と考えることもできます。

    一応、参考まで。

    キャンセル

  • 2021/03/13 15:22

    > m.ts10806様
    わざわざありがとうございます!
    僕も付け直せますよーと言おうかと思ったんですが、
    PHPが分かるのであればPHP側で処理するのがベストかなぁと。
    CSSでの処理はトリッキーな方法であり、
    フロントエンジニアさんの守備範囲が増えたらいいなぁぐらいの話なので、
    僕自身はこのままでも大丈夫ですっ

    以下蛇足です
    自分で言うとかなりカッコ悪い気がするので、
    空気は読んでいただいてるかと思いますっ
    ありがとうございます!

    キャンセル

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

  • ただいまの回答率 87.77%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る