wp_reset_queryがとても大切なのにいつも忘れてしまうので自戒を込めて。

2019/1/17 「query_posts()」 は非推奨なので修正しました!
wp_reset_query();の「;」が抜けてました!

 

PHPは、まったくと言ってイイ程わかりませぬが、
なんとかかんとか、検索力を駆使して形にしているのだけども。

検索して拝借したコードの中には、
そのままでは、エラーが出たり、エラーは出ないものの
思わぬ落とし穴があったり。
ちゃんと勉強しなきゃ!

反省、猛反省!

ソーシャルボタンが表示されない!

今回は、サイドバーに表示させた「埋もれてる記事」と「カテゴリごとの最新記事」が原因で、設置したソーシャルボタンが表示されなくなると言う不具合が。

<?php query_posts(array('orderby' => 'rand', 'showposts' => 5, 'cat' => 4,23));
if (have_posts()) : while (have_posts()) : the_post();?>
<ul class="random-post">
<li>
<a  href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php if (has_post_thumbnail()) : ?><?php the_post_thumbnail('side_thumbnail', array('class' => 'left')); ?></a><?php else : ?>
<img src="<?php bloginfo('home'); ?>/images/default.png"></a>
<?php endif; ?><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<span class="sidebar-excerpt"><?php echo mb_substr(get_the_excerpt(), 0, 50); ?></span>
</li>
</ul>
<?php endwhile; ?>
<?php endif; ?>

上の様に書いてるのだけども、
問題なく記事は表示されるものの、
ソーシャルリンクが一部しか表示されない!!?

なんでー!!????

ソーシャルリンクが表示されない

どうしてだかわからなくて右往左往したけど、
結局はいつものコレを忘れてた。

12行目に挿入。

<?php wp_reset_query(); ?>
<?php query_posts(array('orderby' => 'rand', 'showposts' => 5, 'cat' => 4,23));
if (have_posts()) : while (have_posts()) : the_post();?>
<ul class="random-post">
<li>
<a  href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php if (has_post_thumbnail()) : ?><?php the_post_thumbnail('side_thumbnail', array('class' => 'left')); ?></a><?php else : ?>
<img src="<?php bloginfo('home'); ?>/images/default.png"></a>
<?php endif; ?><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<span class="sidebar-excerpt"><?php echo mb_substr(get_the_excerpt(), 0, 50); ?></span>
</li>
</ul>
<?php endwhile; ?>
<?php wp_reset_query(); ?>
<?php endif; ?>

ソーシャルリンクが表示される

めでたく、表示されました。

 

query_postsとreset_query はセットで

1行目の”query_posts”で、条件を指定しているので、これをリセット”reset_query”しないとその条件が以下に引き継がれてしまうのです。

「それと、ソーシャルボタンがなんの関係が?」
って感じだけども、
たぶん、訳わかんなくなっちゃうってこと?!かねー

 

よー、わからん。

でも、今回もこれで正常に表示できたので、これが原因だったことは間違いない。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA