WordPressでオリジナルテーマの作成中です。
WordPressのウィジェット機能で自作の検索フォームsearchform.php
を作成し、
検索結果をsearch.php
に表示させようとしています。
検索結果は、問題なく表示されるのですが、検索パターンによって表示が崩れてしまうことがあり
修正しようと試みましたがわからないことが多くなってきました。
search.php
はhome.php
をアレンジして編集しています。
適用させたいclass名もhome.php
のものを使いたいです。
(home.php
での表示は崩れていません)
今の所、home.php
は投稿一覧を表示させるようにしています。
search.php
<div class="myposthead"> <h1>検索結果</h1> <p>SEARCH</p> <?php if (have_posts()): ?> </div> <?php if (isset($_GET['s']) && empty($_GET['s'])) { echo '検索キーワードが未入力です'; } else { echo '“'.$_GET['s'] .'”の検索結果:'.$wp_query->found_posts .'件'; } ?> <div class="mypostlist"> <article <?php post_class(''); ?>> <?php while(have_posts()): the_post(); ?> <a href="<?php the_permalink(); ?>"> <?php if( has_post_thumbnail() ): ?> <figure> <?php the_post_thumbnail(); ?> </figure> <?php endif; ?> <h2><?php echo get_the_title(); ?></h2> </a> <?php endwhile; ?> <?php else: ?> <p>検索されたキーワードにマッチする記事はありませんでした</p> </article> <?php endif; ?> </div>
home.php
<div class="myposthead"> <h1>最新情報</h1> <p>RESENT</p> </div> <div class="mypostlist"> <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <article <?php post_class(''); ?>> <a href="<?php the_permalink(); ?>"> <?php if( has_post_thumbnail() ): ?> <figure> <?php the_post_thumbnail(); ?> </figure> <?php endif; ?> <h2><?php the_title(); ?></h2> </a> </article> <?php endwhile; endif; ?> </div>
style.css
.mypostlist { display: flex; flex-wrap: wrap; justify-content: space-between; } .mypostlist article { width: 48%; margin-bottom: 20px; } .mypostlist figure { margin: 0; } .mypostlist h2, .mypostlist h3{ margin: 0; padding: 0; border: none; font-size: 0.8em; } .mypostlist img { height: 180px; object-fit: cover; }
具体的な事象は以下の通りです。
検索したワードに候補が見つかった時
「“●●”の検索結果:●件」の下に該当の記事とアイキャッチ画像とタイトルが表示されますが、
<div class="mypostlist">
で指定したcssの一部が適用されません。
(.mypostlist
の内容全てと.mypostlist article
のmargin-bottom: 20px;
が適用されません)
検索したワードに候補が見つからなかった時
検索結果として、「検索されたキーワードにマッチする記事はありませんでした」と表示されますが、
sidebar.php
で表示させているウィジェットエリア内で、WordPressの管理画面で登録したプロフィール情報(本文のみ)が消えてしまいます。
ブランクで検索ボタンを押した時
「検索キーワード未入力」と表示されますが、その下に全ての投稿一覧が表示されます。
投稿だけではなく、現在使う予定のない固定ページのリンクも混じって表示されてしまいます。
検索ワードが未入力のまま検索ボタン押すと、search.php
がテンプレートとして使われずindex.php
を見に行くということらしいので、index.php
の内容も確認してみましたが、原因がわかりませんでした。
お手数をおかけいたしますが、上記の事象から考えられる原因、可能性等
わかる方どうかご教示いただけますでしょうか。
回答1件
あなたの回答
tips
プレビュー