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

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

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

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

PHP

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

Q&A

解決済

3回答

671閲覧

複数のカスタム投稿タイプからの記事をまとめたアーカイブページのページ送りが404エラーで表示されません。

beck_lion

総合スコア7

WordPress

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

PHP

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

0グッド

0クリップ

投稿2018/03/19 10:43

編集2018/03/19 10:58

WordPressでプラグイン「Custom Post Type UI」を使って複数のカスタム投稿タイプを作り、
固定ページで複数のカスタム投稿タイプからの投稿を一覧で表示させているのですが、
2ページ目以降が404エラーで表示されません。

ご教示いただけますと幸いです。
宜しくお願い致します。

■複数のカスタム投稿タイプ
スラッグ:blog_a
スラッグ:blog_b
スラッグ:blog_c

■複数のカスタム投稿タイプをまとめた一覧ページ(固定ページ)
ファイル名:home.php
スラッグ:blog
1ページ目のURL:http://www.example.com/blog/ ※このページは表示されています。
2ページ目のURL:http://www.example.com/blog/page/2/ ※404エラーで表示されません。

■パーマリンク設定
http://www.example.com/blog/%category%/%postname%/

■ページナビゲーション設定

<?php if ( ! function_exists( 'sample_pagination' ) ): function sample_pagination( $args = array(), $query = false ) { $args = wp_parse_args( $args, apply_filters( 'sample_pagination_default_args', array( 'container_id' => 'paging', 'container_class' => 'group', 'prev_text' => esc_html__( 'Previous page', 'sample' ), 'next_text' => esc_html__( 'Next page', 'sample' ), 'paginate_links_args' => array() ) ) ); if ( 'object' != gettype( $query ) || 'WP_Query' != get_class( $query ) ) { global $wp_query; $query = $wp_query; } // Set things up for paginate_links() $unreal_pagenum = 999999999; $permastruct = get_option( 'permalink_structure' ); $paginate_links_args = wp_parse_args( $args['paginate_links_args'], array( 'base' => str_replace( $unreal_pagenum, '%#%', esc_url( get_pagenum_link( $unreal_pagenum ) ) ), 'format' => empty( $permastruct ) ? '&page=%#%' : 'page/%#%/', 'total' => $query->max_num_pages, 'current' => max( 1, get_query_var( 'paged' ), get_query_var( 'page' ) ), ) ); $method = get_theme_mod( 'pagination_method', 'numbers' ); if ( $query->max_num_pages > 1 ) { ?> <div <?php echo empty( $args['container_id'] ) ? '' : 'id="' . esc_attr( $args['container_id'] ) . '"'; ?> <?php echo empty( $args['container_class'] ) ? '' : 'class="' . esc_attr( $args['container_class'] ) . '"'; ?> ><?php switch ( $method ) { case 'text': previous_posts_link( $args['prev_text'] ); next_posts_link( $args['next_text'], $query->max_num_pages ); break; case 'numbers': default: echo paginate_links( $paginate_links_args ); break; } ?></div><?php } } endif; ?>

■固定ページの記述

<?php $args = array( 'post_type' => array('blog_a','blog_b','blog_c'), 'posts_per_page' => 10, 'paged' => get_query_var( 'paged' ), ); ?> <?php query_posts( $args ); ?> <?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?> ここにループ内容 <?php endwhile; ?> <?php sample_pagination(); ?> <?php wp_reset_query(); ?>

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

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

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

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

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

y_waiwai

2018/03/19 11:30

それをどうしたいのでしょうか?
guest

回答3

0

ベストアンサー

query_postsWP_Queryに変えてみましょう。
関数リファレンス/WP Query

投稿2018/03/20 05:57

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

beck_lion

2018/03/20 08:22

ご回答ありがとうございました。 大変参考になりました。
guest

0

query_postsをpre_get_postsに変え、
functions.phpに以下のように記述したことで解決できました。
みなさまヒントを与えて頂きまして誠にありがとうございました。

function blog_posts_per_page( $query ) { if ( is_admin() || !$query->is_main_query() ) { return; } if ( $query->is_home() ) { $query->set( 'posts_per_page', '10' ); $query->set( 'post_type', array('blog_a','blog_b','blog_c') ); } } add_action( 'pre_get_posts', 'blog_posts_per_page' );

投稿2018/03/20 08:21

beck_lion

総合スコア7

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

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

0

2ページ目のURL:http://www.example.com/blog/page/2/ ※404エラーで表示されません。

そのページがないってことだから、それを作ってやればいいんでは?

投稿2018/03/20 04:21

y_waiwai

総合スコア87747

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

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

beck_lion

2018/03/20 08:22

ご回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問