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

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

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

phpPgAdminは、PHPで作成された複数のPostgreSQLデータベースをブラウザから簡単に管理・操作できるツール。テーブルの作成や参照を始め、データのバックアップやリストアといった操作が可能になります。

WordPress

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

Q&A

解決済

1回答

3004閲覧

wordpress:検索結果画面のページ送りがうまくいかない

webserviceNI

総合スコア39

phpPgAdmin

phpPgAdminは、PHPで作成された複数のPostgreSQLデータベースをブラウザから簡単に管理・操作できるツール。テーブルの作成や参照を始め、データのバックアップやリストアといった操作が可能になります。

WordPress

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

0グッド

0クリップ

投稿2022/03/10 06:15

編集2022/03/10 06:49

検索結果画面をsearch.phpで制作しました。
表示は、キーワードをURLから取得し、wp_queryで回します

<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $query = new WP_Query( array( 's' => $s, 'post_type' => 'post', 'posts_per_page' => get_option('article_num'), 'orderby' => 'date', 'order' => 'DESC', 'post_status' => 'publish', 'paged' => $paged, ) ); ?>

ページャーの設定

<?php if ($query->max_num_pages > 1) { echo paginate_links(array( 'base' => get_pagenum_link(1) . '%_%', 'format' => 'page/%#%', 'current' => max(1, $paged), 'mid_size' => 1, 'total' => $query->max_num_pages, 'prev_text' => '<i class="fas fa-angle-left"></i>', 'next_text' => '<i class="fas fa-angle-right"></i>', 'type' => 'list', )); } wp_reset_postdata(); ?>

記事自体はおそらく取得できているのですが、ページャーが機能しません。
そもそも2ページ目のURLがおかしい気がします。
現状だと
http://_test01.com/?s=(検索キーワード)page/2/
となり、「(検索キーワード)page/2/」までを検索キーワードとした
結果が表示されます。

検索結果ページの2ページ目のURLはどうなるのでしょうか。
よろしくお願いいたします。

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

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

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

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

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

webserviceNI

2022/03/10 06:39

https://okwave.jp/qa/q6972725.html こちらを参考に2ページ目のアドレスを page/2?s=(検索文字列) ともしてみたのですが、 index.phpが呼ばれてしまい、2ページ目は表示できませんでした。
guest

回答1

0

自己解決

自己解決しました、、
検索結果画面でおそらくqueryが存在するところに、
$query = new WP_Queryを上書きしていたので、
ページャーがおかしくなったのかもしれません。

通常のループ

<?php if(have_posts()): ?> <?php while(have_posts()): the_post(); ?>

を使ったところ、うまく2ページ目に飛べました。

ページャーを生成するための最大記事数や生成するページ数は
検索結果数などから設定してやりました。

投稿2022/03/10 08:22

編集2022/03/10 08:23
webserviceNI

総合スコア39

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問