serch.phpのエラー対策
-
みなさん、あけましておめでとうございます。
今年もよろしくお願いします。
さて、早速質問です。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 ‘画像が見つかりません’;
}
/* ここまで ↑ 修正版 */これを実行すると、サムネールがある記事もすべて画像がみつかりませんとなってしまいます。
どのように書いたら、エラーも無くきちんとサムネール画像が表示されるか教えていただけませんか。
よろしくお願いします。
3件の返信を表示中 - 1 - 3件目 (全3件中)
3件の返信を表示中 - 1 - 3件目 (全3件中)
- このトピックに返信するにはログインが必要です。