教文館の社内ナレッジベースです。
Fatal error: Cannot redeclare filter_where() (previously declared in

なんの考えもなく「php code widget」プラグインでポスト内に「function filter_where(~」と記述したらエラー表示で怒られた。

<?php while ( have_posts() ) : the_post(); ?>
   <?php 
function filter_where($where = '') {
    $where .= " AND post_date >= '" . date('Y-m-d', strtotime('-90 days')) . "'" . " AND post_date <= '" . date('Y-m-d', strtotime('+0 days')) . "'";
    return $where;
  }
add_filter('posts_where', 'filter_where'
); ?>
.
.
.
.
<?php endwhile; ?>

ループの中にfunction は書いてはいけないようです。分かってたつもりなのに、Widgetを使うとなんとなくできそうな気がしたのが間違い(←ココらへんが素人)。ループの中だと何度もfilter_where()関数が再定義されてしまいますね。しょっぱなのFatal errorは「重複は出来ません」という致命的エラーの意味ですかね。