Quantcast
Channel: WordPress | サポートフォーラム »投稿一覧
Viewing all articles
Browse latest Browse all 1303

serch.phpのエラー対策

$
0
0

みなさん、あけましておめでとうございます。
今年もよろしくお願いします。
さて、早速質問です。serch.phpについてです。現状次の様なコードを使用しています。


/*   ここから ↓ serch.php */
<?php get_header(); ?>
<div class="page-inner">
<div class="page-main" id="pg-search">
<form class="search-form" role="search" method="get" action="<?php echo esc_url( home_url() ); ?>">
<div class="search-box">
<input type="text" name="s" class="search-input" placeholder="キーワードを入力してください" value="<?php the_search_query(); ?>" />
<button type="submit" class="button button-submit">検索</button>
</div>
</form>
<div class="searchResult-wrapper">
<?php if ( get_search_query() ): ?>
<div class="searchResult-head">
<h3 class="title">「<?php the_search_query(); ?>」の検索結果</h3>
<div class="total">全<?php echo $wp_query->found_posts; ?>件</div>
</div>
<?php endif; ?>
<ul class="searchResultLlist">
<?php
if ( have_posts() && get_search_query() ) :
while ( have_posts() ) : the_post();
?>
<li class="searchResultLlist-item">
<a href="<?php the_permalink(); ?>">
<div class="item-wrapper">
<div class="image">
<?php

/*   ここから ↓ オリジナル */
$image = get_the_post_thumbnail( get_queried_object()->ID, 'search' );  /* ※この行でエラー */
if ( $image ):
echo $image;
else:
echo '<img src="'. get_template_directory_uri(). '/assets/images/img-noImage.png">';
endif;
/*   ここまで ↑ オリジナル */
?>
</div>
<dl>
<dt><?php the_title(); ?></dt>
<dd class="description"><?php echo get_the_excerpt(); ?></dd>
</dl>
</div>
</a>
</li>
<?php endwhile; ?>
</ul>
<div class="pager">
<ul class="pagerList">
<?php
page_navi();
?>
</ul>
</div>
<?php elseif( ! get_search_query() ): ?>
<p> 検索ワードが入力されていません</p>
<?php else: ?>
<p> 該当する記事は見つかりませんでした。</p>
<?php endif; ?>
</div>
</div>
</div>
<?php get_footer(); ?>
/*   ここまで ↑ serch.php */

これで検索するとサムネールと検索結果は表示されるのですが、サムネールの上に
「Warning: Attempt to read property “ID” on null in (パス名)search.php on line ※この行でエラー」
と表示されます。そこで生成AIに尋ねて
/*   ここから ↓ オリジナル */

/*   ここまで ↑ オリジナル */
を以下の様に書き換えました。

/*   ここから ↓ 修正版 */

$queried_object = get_queried_object();
if ($queried_object && isset($queried_object->ID)) {
$image = get_the_post_thumbnail($queried_object->ID, ‘search’);
if ($image) {
echo $image;
} else {
// サムネイルが設定されていない場合の処理
echo ‘

デフォルト画像

‘;
}
} else {
// IDがNullの場合の処理
echo ‘画像が見つかりません’;
}
/*   ここまで ↑ 修正版 */

これを実行すると、サムネールがある記事もすべて画像がみつかりませんとなってしまいます。

どのように書いたら、エラーも無くきちんとサムネール画像が表示されるか教えていただけませんか。
よろしくお願いします。


Viewing all articles
Browse latest Browse all 1303

Trending Articles