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

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

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

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

366閲覧

カスタム投稿タイプ「A」のアーカイブページ(年別含む)に投稿(post)も表示した上でwp_pagenaviによるページ送りを実装したい。

asgi_sandbox

総合スコア6

WordPress

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

1クリップ

投稿2018/08/24 02:16

編集2018/08/24 02:47

前提・実現したいこと

掲題の通り、カスタム投稿タイプ「A」のアーカイブページ(年別含む)に投稿(post)も表示した上でwp_pagenaviによるページ送りを実装したいです。
下記のコードで固定ページではページ送りが動いたのですが、
カスタム投稿用のアーカイブページではページ送りがうまく動かず404となってしまい、困っております。

該当のソースコード

archive-custom_post_a.php

PHP

1<?php 2 $paged = get_query_var('paged') ? get_query_var('paged') : 1; 3 if(is_year()){ 4 $args = array( 5 'post_type' => array('custom_post_a','post'), 6 'posts_per_page' => 9, 7 'paged' => $paged, 8 'meta_key' => 'show_archive', 9 'meta_value' => 'show', 10 'meta_compare' => 'LIKE', 11 'year' => $year, 12 ); 13 } else { 14 $args = array( 15 'post_type' => array('custom_post_a','post'), 16 'posts_per_page' => 9, 17 'paged' => $paged, 18 'meta_key' => 'show_archive', 19 'meta_value' => 'show', 20 'meta_compare' => 'LIKE', 21 ); 22 } 23?> 24<?php $myquery = new WP_Query( $args ); ?> 25<?php if ( $myquery->have_posts() ) : ?> 26 <?php while( $myquery->have_posts() ) : $myquery->the_post(); ?> 27//ループ内容 28 <?php endwhile;?> 29<?php endif; ?> 30<?php 31 wp_pagenavi(array('query' => $myquery)); 32 wp_reset_query(); 33?>

補足

9件ずつページ送りをする予定なのですが、
カスタム投稿タイプ「A」の投稿数が11件を超えるとページ送りが動作し、
それよりも少ないと2ページ目が404になる状況です。

アーカイブだと動かない、件数が11を超えると動く…という部分が不可解で
検索しても納得できるものがありませんでした。
おわかりの方がおりましたらご教授いただけないでしょうか。

追記

カスタム投稿タイプの追加には「Custom Post Type UI」を使用しています。

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

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

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

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

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

guest

回答2

0

解決済みですが、new WP_Query で取得するより pre_get_posts でクエリを書き換えたほうが軽量で問題が起きにくいです。

【【wordpress】pre_get_postsを使ってみませんか?】
https://qiita.com/ruka/items/e14280d34eddf49efad1#pre_get_postsのご提案

【pre_get_postsでメインクエリを制御する | Tips Note by TAM】
https://www.tam-tam.co.jp/tipsnote/cms/post9420.html

【[Wordpress]pre_get_postsを使いこなす!pre_get_posts使い方まとめ | EMiAC-Works】
https://emiac-works.com/coding/pre-get-posts-code-snipet/

投稿2018/08/24 16:58

kei344

総合スコア69357

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

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

0

自己解決

上記、自己解決いたしました。
管理画面の「1ページに表示する最大投稿数」が10件となっており、
posts_per_pageの数を上回っているのが原因のようでした。

投稿2018/08/24 04:07

asgi_sandbox

総合スコア6

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.51%

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

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

質問する

関連した質問