質問編集履歴

3 wp_Queryの記述を修正しました

asgi_sandbox

asgi_sandbox score 6

2018/08/24 11:47  投稿

カスタム投稿タイプ「A」のアーカイブページ(年別含む)に投稿(post)も表示した上でwp_pagenaviによるページ送りを実装したい。
### 前提・実現したいこと
掲題の通り、カスタム投稿タイプ「A」のアーカイブページ(年別含む)に投稿(post)も表示した上でwp_pagenaviによるページ送りを実装したいです。
下記のコードで固定ページではページ送りが動いたのですが、
カスタム投稿用のアーカイブページではページ送りがうまく動かず404となってしまい、困っております。
### 該当のソースコード
archive-custom_post_a.php
```PHP
<?php
 $paged = get_query_var('paged') ? get_query_var('paged') : 1;
 if(is_year()){
   $args = array(
     'post_type' => array('custom_post_a','post'),
     'posts_per_page' => 9,
     'paged' => $paged,
     'meta_key' => 'show_archive',  
     'meta_value' => 'show',  
     'meta_compare' => 'LIKE',  
     'year' => $year,
   );
 } else {
   $args = array(
     'post_type' => array('custom_post_a','post'),
     'posts_per_page' => 9,
     'paged' => $paged,
     'meta_key' => 'show_archive',  
     'meta_value' => 'show',  
     'meta_compare' => 'LIKE',  
   );
 }
?>
<?php $myquery = new WP_Query( $args ); ?>
<?php if ( $myquery->have_posts() ) : ?>
 <?php while( $myquery->have_posts() ) : $myquery->the_post(); ?>
//ループ内容
 <?php endwhile;?>
<?php endif; ?>
<?php
 wp_pagenavi(array('query' => $myquery));
 wp_reset_query();
?>
```
### 補足
9件ずつページ送りをする予定なのですが、
カスタム投稿タイプ「A」の投稿数が11件を超えるとページ送りが動作し、
それよりも少ないと2ページ目が404になる状況です。
アーカイブだと動かない、件数が11を超えると動く…という部分が不可解で
検索しても納得できるものがありませんでした。
おわかりの方がおりましたらご教授いただけないでしょうか。
### 追記
カスタム投稿タイプの追加には「Custom Post Type UI」を使用しています。
  • PHP

    38092 questions

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

  • WordPress

    15483 questions

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

2 誤字を修正

asgi_sandbox

asgi_sandbox score 6

2018/08/24 11:25  投稿

カスタム投稿タイプ「A」のアーカイブページ(年別含む)に投稿(post)も表示した上でwp_pagenaviによるページ送りを実装したい。
### 前提・実現したいこと
掲題の通り、カスタム投稿タイプ「A」のアーカイブページ(年別含む)に投稿(post)も表示した上でwp_pagenaviによるページ送りを実装したいです。
下記のコードで固定ページではページ送りが動いたのですが、
カスタム投稿用のアーカイブページではページ送りがうまく動かず404となってしまい、困っております。
### 該当のソースコード
archive-a.php
archive-custom_post_a.php
```PHP
<?php
 $paged = get_query_var('paged') ? get_query_var('paged') : 1;
 if(is_year()){
   $args = array(
     'post_type' => array('custom_post_a','post'),
     'posts_per_page' => 9,
     'paged' => $paged,
     'year' => $year,
   );
 } else {
   $args = array(
     'post_type' => array('custom_post_a','post'),
     'posts_per_page' => 9,
     'paged' => $paged,
   );
 }
?>
<?php $myquery = new WP_Query( $args ); ?>
<?php if ( $myquery->have_posts() ) : ?>
 <?php while( $myquery->have_posts() ) : $myquery->the_post(); ?>
//ループ内容
 <?php endwhile;?>
<?php endif; ?>
<?php
 wp_pagenavi(array('query' => $myquery));
 wp_reset_query();
?>
```
### 補足
9件ずつページ送りをする予定なのですが、
カスタム投稿タイプ「A」の投稿数が11件を超えるとページ送りが動作し、
それよりも少ないと2ページ目が404になる状況です。
アーカイブだと動かない、件数が11を超えると動く…という部分が不可解で
検索しても納得できるものがありませんでした。
おわかりの方がおりましたらご教授いただけないでしょうか。
### 追記
カスタム投稿タイプの追加には「Custom Post Type UI」を使用しています。
  • PHP

    38092 questions

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

  • WordPress

    15483 questions

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

1 追記しました

asgi_sandbox

asgi_sandbox score 6

2018/08/24 11:24  投稿

カスタム投稿タイプ「A」のアーカイブページ(年別含む)に投稿(post)も表示した上でwp_pagenaviによるページ送りを実装したい。
### 前提・実現したいこと
掲題の通り、カスタム投稿タイプ「A」のアーカイブページ(年別含む)に投稿(post)も表示した上でwp_pagenaviによるページ送りを実装したいです。
下記のコードで固定ページではページ送りが動いたのですが、
カスタム投稿用のアーカイブページではページ送りがうまく動かず404となってしまい、困っております。
### 該当のソースコード
archive-a.php
```PHP
<?php
 $paged = get_query_var('paged') ? get_query_var('paged') : 1;
 if(is_year()){
   $args = array(
     'post_type' => array('custom_post_a','post'),
     'posts_per_page' => 9,
     'paged' => $paged,
     'year' => $year,
   );
 } else {
   $args = array(
     'post_type' => array('custom_post_a','post'),
     'posts_per_page' => 9,
     'paged' => $paged,
   );
 }
?>
<?php $myquery = new WP_Query( $args ); ?>
<?php if ( $myquery->have_posts() ) : ?>
 <?php while( $myquery->have_posts() ) : $myquery->the_post(); ?>
//ループ内容
 <?php endwhile;?>
<?php endif; ?>
<?php
 wp_pagenavi(array('query' => $myquery));
 wp_reset_query();
?>
```
### 補足
9件ずつページ送りをする予定なのですが、
カスタム投稿タイプ「A」の投稿数が11件を超えるとページ送りが動作し、
それよりも少ないと2ページ目が404になる状況です。
アーカイブだと動かない、件数が11を超えると動く…という部分が不可解で
検索しても納得できるものがありませんでした。
おわかりの方がおりましたらご教授いただけないでしょうか。
おわかりの方がおりましたらご教授いただけないでしょうか。
### 追記
カスタム投稿タイプの追加には「Custom Post Type UI」を使用しています。
  • PHP

    38092 questions

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

  • WordPress

    15483 questions

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

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る