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

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

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

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

Q&A

解決済

1回答

3373閲覧

WP-PageNaviで2ページ目以降の表示がおかしい

kp4livateen

総合スコア32

WordPress

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

0グッド

0クリップ

投稿2020/03/29 04:30

編集2020/03/31 09:25

WP-PageNaviでページネーションを実装しました。

固定ページ(single-xxx.php)に「カスタム投稿タイプ」から「求人情報」を出力し、「記事一覧ページ」のようにしました。(「Advance Custom Fields」と「Custom Post Type UI」を使っています)

参考にしたサイト
https://macoblog.com/wp-pagenavi_use/

表示数を3にしテストで4記事作成しましたが、2ページ目に飛んでも最初の3記事が表示されてしまいます。(WordPressの表示設定の「1ページに表示する最大投稿数」は1投稿にしてあります)

コードは下記です。(最初のコードに戻しました)

short

1<?php 2/* 3Template Name:短期の製造のお仕事情報 4*/ 5?> 6 7<?php get_header(); ?> 8 9 <div class="inner"> 10 11 <div class="test-card-wrapper"> 12 <?php 13 $my_query = new WP_Query( 14 array( 15 'post_type' => 'recruit', 16 'posts_per_page' => 3, 17 'tax_query' => array( 18 array( 19 'taxonomy' => 'short', 20 'field' => 'slug', 21 'terms' => array( 22 'short-manufacture', 23 ), 24 ), 25 ), 26 ) 27 ); 28 // $queryの条件で記事の有無を確認 29 if ( $my_query->have_posts() ): 30 31 // $queryの条件で記事を取得するループ 32 while ( $my_query->have_posts() ): 33 $my_query->the_post(); 34 ?> 35 36 <div class="test-card"> 37 <div class="test-border"> 38 <a href="<?php the_permalink(); ?>"> 39 <div class="test-number"><?php the_field('job-number'); ?></div> 40 <div class="test-ttl test-row"><?php the_title(); ?></div> 41 <div class="test-flex flex-between test-row test-padding"> 42 <div class="test-fa"><i class="fas fa-yen-sign"></i> <?php the_field('salary'); ?></div> 43 <div class="test-fa"><i class="fas fa-map-pin"></i> <?php the_field('work-location'); ?></div> 44 <div class="test-fa"><i class="far fa-clock"></i> <?php the_field('working-hours'); ?></div> 45 </div> 46 <div class="test-detail test-padding"><?php the_field('job-detail'); ?></div> 47 </a> 48 </div> 49 </div> 50 51 <?php 52 endwhile; 53 wp_reset_postdata(); // メインクエリの $post グローバル変数を復元するために使用 54 55 endif; 56 ?> 57 </div> 58 <?php 59 $paged = get_query_var('paged') ? get_query_var('paged') : 1; 60 $args = array( 61 'post_type' => 'recruit', 62 'posts_per_page' => 3, 63 'paged' => $paged 64 ); 65 66 $my_query = new WP_Query( $args ); 67 68 if(function_exists('wp_pagenavi')){ 69 wp_pagenavi(array('query'=>$my_query)); 70 } 71 72 wp_reset_postdata(); 73 ?> 74 </div><!-- inner --> 75 76<?php get_footer(); ?> 77

コードは下記です。(ご指摘に対し、追記しました)

functions.php

1// カスタム投稿タイプを設定するregister_post_type関数 2add_action( 'init', 'my_post_type' ); 3function my_post_type() { 4 register_post_type( 5 'recruit', 6 array( 7 'label' => '求人募集', 8 'public' => true, 9 'hierarchical' => true, 10 'has_archive' => true, 11 'menu_position' => 3, 12 'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'page-attributes') 13 ) 14 ); 15}

また、ページネーションの表示数を2ページしかない場合は「①②」だけ表示されるようにしたいのですが、WP-PageNaviの設定からでは出来ないのでしょうか?

参考にしたサイト
https://webkaru.net/wordpress/plugin-wp-pagenavi/

自分なりにググり尽くし、合ってるつもりなのですが、どなたかご教示くださいm(_ _)m

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

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

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

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

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

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

kei344

2020/03/31 01:55

回答が付いた質問の編集は慎重に行ってください。質問文のコードについて回答にて指摘があった場合は「追記」し、元のコードを編集する場合も「直したこと」がわかるようにしてください。後から見た人から見て、現在の回答が「無いコードに対しての指摘」になり、意味がわからなくなります。
guest

回答1

0

ベストアンサー

$query = new WP_Queryで表示して$my_query = new WP_Queryでページングを処理しているからでは。

投稿2020/03/29 04:37

kei344

総合スコア69364

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

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

kp4livateen

2020/03/29 05:53

ご回答ありがとうございます!! どちらかに統一しても変わらないようです…。。
kei344

2020/03/29 06:06

統一の仕方によります。 ちなみに固定ページにむりやり一覧ページを表示していますか?その場合は、カスタム投稿タイプを作る際にhas_archiveが指定して、通常のループで処理するほうが良いです。 【WordPress » カスタム投稿タイプの設定 | MORILOG】 http://morilog.com/wordpress/post_type/register_post_type/
kp4livateen

2020/03/29 23:46

固定ページにむりやり一覧ページを表示しています。 また、書き忘れたのですが「Advance Custom Fields」と「Custom Post Type UI」も使っています。 【固定ページ カスタム投稿タイプをループさせる】 でググったのですが、すみません、、何が何だかサッパリわかりません…。。
kei344

2020/03/30 05:23

> 統一の仕方によります。 > has_archiveが指定して、通常のループで処理するほうが良いです。 この二通りの提示をしていて、それについての反応が無いので、「わからない」ことしかわかりません。
kp4livateen

2020/03/31 01:38

失礼しました! > 統一の仕方によります。 $query → $my_query にすべて変更・統一しました。(質問本文を編集済みです) > has_archiveが指定する 添付していただいたURLを参考にfunctions.phpに追記しました。(質問本文に追記済みです) > 通常のループで処理する 「通常」がわかっていないのですが… <?php if ( have_posts() ) : ?> <?php while ( have_posts() ) : ?> <?php the_post(); ?> // ループしたい処理を書く <?php endwhile; ?> <?php endif; ?> 上記で合っていますでしょうか? 上記で書くと「サイトに重大なエラーがありました。」となってしまいます…。 現在こんな状況です。
kei344

2020/03/31 02:02

変数を同じ名前にしただけで統一されていません。new WP_Queryを1回だけにしましょう。 また、has_archiveを指定するならテンプレートも変わり、new WP_Query自体も不要になるはずです。(同じスラッグの固定ページがあったらアーカイブより優先されてしまう可能性がある) >上記で合っていますでしょうか? 「通常のループ」についてはそれで問題ないです。 エラーについては書いた場所に問題があるくらいしか、こちらでは判断できません。
kp4livateen

2020/03/31 03:44

ご回答ありがとうございます。(何度も付き合わせてしまい申し訳ありません…) 質問のコードを再度修正しました。 現在エラーにはなってませんが、何も取得されていない状態です…。(コードがこれで合っていないのは分かっているのですが…) > new WP_Query自体も不要になるはずです。 具体的にコードのどこを削除すればよろしいでしょうか? 一番下にあたる「下記コード」は固定ページでWP-PageNaviを使うために必要なので消せないのでは?と考えています。 ソース → https://macoblog.com/wp-pagenavi_use/ <?php $paged = get_query_var('paged') ? get_query_var('paged') : 1; $args = array( 'post_type' => 'recruit', 'posts_per_page' => 3, 'paged' => $paged ); $my_query = new WP_Query( $args ); if(function_exists('wp_pagenavi')){ wp_pagenavi(array('query'=>$my_query)); } wp_reset_postdata(); ?>
kei344

2020/03/31 04:50

二つまったく別の方法を提示してしまったので、伝わらないようですね、すみません。 > 何も取得されていない状態です…。 例えばこれに対して「どこが」とか確認のために毎回聞く必要があるので、私にはこれ以上はサポート不能です。 > 一番下にあたる「下記コード」は固定ページでWP-PageNaviを使うために必要なので消せないのでは?と考えています。 そうですか。WP_Queryが何をしているかをもう一度調べてみてください。 【関数リファレンス/WP Query - WordPress Codex 日本語版】 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/WP_Query
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問