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

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

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

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

PHP

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

Q&A

解決済

2回答

742閲覧

検索結果ページだけ初期表示が50音順にならない

iambeginnerr

総合スコア12

WordPress

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

PHP

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

0グッド

0クリップ

投稿2020/11/11 06:15

前提・実現したいこと

wordpressで検索サイトを制作しています。
固定ページにフリーワード検索を設置しています。検索結果はsearch.phpに表示させています。
この検索結果の初期表示を50音順(あ行から)にしたいのですが、並び順が逆(ワ行から)になってしまいます。

カスタムフィールドで店舗名をフリガナで登録しています。
このデータを元に50音順表示を設定しています。

検索結果とは別に、taxonomy-term.phpで店舗一覧を表示しているページもあるのですが、こちらだと正常に50音順表示されています。

PHPに関しては初心者です。
考えられる原因はありますか?
皆様の知恵をお貸しください。
よろしくお願いいたします。

該当のソースコード

page.php 検索ボックス

<h3><i class="fas fa-font"></i>フリーワード検索</h3> <form method="get" id="Search" action="<?php echo home_url('/'); ?>"> <input type="text" name="s" id="SearchInput" class="word-box" value="<?php the_search_query(); ?>" placeholder="キーワードを入力してください" /> <input type="hidden" name="post_type" value="school"> <input class="search_btn fas" type="submit" value="検索" accesskey="f" /> </form>

functions.php

//店舗一覧ページ初期表示を50音順にする function change_posts_per_page($query) { if ( is_admin() || ! $query->is_main_query() ){ return; } if ( $query->is_tax()) { if(!isset($query->query['orderby'])){ $query->set( 'meta_key', 'phonetic' ); $query->set( 'orderby', 'meta_value' ); $query->set( 'order', 'ASC' ); }else{} return; } if ( $query->is_search()) { if(!isset($query->query['orderby'])){ $query->set( 'meta_key', 'phonetic' ); $query->set( 'orderby', 'meta_value' ); $query->set( 'order', 'DESC' ); }else{} return; } } add_action( 'pre_get_posts', 'change_posts_per_page' );

search.php

<?php if ( have_posts() ) : ?> <?php while ( have_posts() ) : the_post(); ?> <article> <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> </article> <?php endwhile; else: ?> <p><?php echo "お探しのページは見つかりませんでした。条件やキーワードを変えて再度検索してみてください。"; ?></p> <?php endif; ?>

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

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

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

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

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

guest

回答2

0

DESCは降順です。ASCとしてください。

PHP

1$query->set( 'order', 'DESC' ); 2 ↓ 3$query->set( 'order', 'ASC' );

投稿2020/11/13 02:20

tabuu

総合スコア2480

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

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

iambeginnerr

2020/12/07 02:55

回答ありがとうございます。 修正しても解決できず、結局GETで値を渡す方法で解決いたしました。 お世話になりました。
guest

0

自己解決

GETで値を渡し、条件分岐させる方法で解決いたしました。
ありがとうございました。

投稿2020/12/07 02:56

iambeginnerr

総合スコア12

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問