設定した条件にて、ウィジェットの出力を制御できる神プラグインが、Widget Logic。
固定ページの子ページに属している場合、一つ一つのページIDを設定せずに、「親ページID」を指定して一括で制御する手順でハマったので、メモ。
functions.phpで関数を作る
子ページかどうかを判定する関数が、標準で準備されていないので、is_subpage()関数を作る。
functions.php に以下のコードを追記する。
function is_subpage() {
  global $post;
  if (is_page() && $post->post_parent){
    $parentID = $post->post_parent;
    return $parentID;
  } else {
    return false;
  };
};(コードはこちらの記事とこちらの記事を参考にさせていただきました。感謝)
ウィジェットの条件分岐を設定する
ついつい、いつもの書き方をやってしまうが、これらの書き方では、判定してくれない。(上の追記したコードが、引数を取らない形だから?)
ダメな例
is_subpage(432)
is_subpage(‘slug’)
!is_subpage(264)
この点にハマった。参考になったのがこちらの記事。
正しくは、こちら。この場合、固定ページのID 13832 の親ページを持つ子ページが、Ture(真)となるので、その子ページのみ表示される。
is_subpage() === 13832一方、その子ページに属している固定ページだけ表示を除外したい場合はこちら。!マークの位置に注意。PHPの比較演算子の書き方になる。
is_subpage() !== 13832

↑ 実際に入力している様子のスクリーンショット。



![[ 御礼 ]みなさんに支えてもらって37歳を迎えました。幸せな気持ちです。](https://mono96.jp/wp-content/uploads/2013/05/IMG_5648-1-150x150.jpg)



