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

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

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

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

PHP

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

Q&A

0回答

694閲覧

検索結果をターム毎に表示させ、最初の記事の前に見出しを付けたい(wordpress)

Sakurax

総合スコア0

WordPress

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

PHP

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

0グッド

0クリップ

投稿2020/12/26 09:20

Wordpressで絞り込み検索機能を持ったサイトを制作中です。
FE Advanced Searchを使って検索を実装しました。
検索結果のページをターム毎に分けて表示させ、
その一つ目の記事の前に見出しを付けたいと思っているのですが・・・。

カスタム投稿:corporate
カスタム分類:cat_areas(都道府県)
カスタム分類に属するターム:各都道府県名

複雑なPHPコードの記述はできないので(知識がありません。。)
記事のループの内側でis_object_in_term を使って都道府県ごとに記事を表示させて、
そのループを都道府県の数だけ回すことにしてみました・・・。

記述したコード1 search.php

<div class="searchbox"> <?php feas_search_form(); ?> </div> <div class="hasei_subtitle01"><span>検索結果</span></div> <div class="shop_area"> <?php get_template_part( 'hokkaido'); ?> <?php get_template_part( 'aomori'); ?> ~都道府県分を追加 <?php get_template_part( 'okinawa'); ?> </div>

記述したコード2 hokkaido.php (エリアごとのループ設定)

<?php if (have_posts()) : ?> <?php while(have_posts()) : the_post(); ?> <?php if ($wp_query->current_post == 0) { ?> <p class="category">北海道</p> <?php } ?> <?php if ( is_object_in_term($post->ID, 'cat_areas','hokkaido') ): ?> <div class="company"> <p class="name"><?php the_title(); ?></p> ” ループしたい内容(カスタムフィールド値) ” </div> <?php endif; ?> <?php endwhile; else : ?> <?php endif; ?>

試したこと

「current_post」 の条件分岐部分を「is_object_in_term」の内側に設定すると

<p class="category">北海道</p>が表示されなく検索結果だけが表示されてしまったので 「is_object_in_term」の外にだしました。

順序としては・・・
「is_object_in_term」で都道府県の記事を選び出し、その一つ目の記事の前にタイトルを付ける。。
かなと考えたのですが・・・

結果

検索結果として
記事のない都道府県の見出しが表示されてしまいます。
1件でも投稿があると、絞り込み検索にかからない都道府県の見出しでも表示はされません。

例えば、北海道、青森、秋田と1件の記事がなく、岩手については1件記事がある。
その場合、検索項目に岩手が引っ掛からないとき、
北海道、青森、秋田の見出しのみが表示されてしまう。。
検索項目に岩手が引っ掛かる場合、北海道、青森、秋田の見出し、岩手は見出しと項目。。。
といった表示になります。。

投稿記事のない場合、見出しも表示されないようにするには
どうすればよいのか。。。間違っている点や記述の方法等
みなさまのお知恵をお借りしたくこちらに投稿いたしました。。
どうぞよろしくお願いいたします!!

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問