WordPressで記事をたくさん作っていると無限に増えていく記事のカテゴリー分け。
投稿を作成している画面でも追加できるので、最初にこれぐらいの分類でいいだろうと思っていても知らず知らずのうちに増えてしまいますね。
分類してサイトの中を分かりやすくしようという意思の表れなので仕方ないことですが、カテゴリーを複雑に階層化してして、子カテゴリーに同じ名前のものが複数存在したりする場合には、「いったいどれがこの記事に合ったカテゴリー?」となってしまうことありませんか?
また、カテゴリーの選択画面がスクロールになっていて少ししか表示されないので、探しているうちにどれがどれやら分からなくなってしまったりすることもありますね。
さらにWordPressの便利機能ではあるものの、公開した記事を編集する際、登録したカテゴリーが先頭に表示されるようになっているので、いったいどの親に属する子カテゴリーなのかが分からなくなってしまうこともあります。
この不具合の原因はカテゴリー選択画面が固定高になっていて、あふれた部分がスクロールになることです。投稿編集画面の限られたサイドスペースを有効に活用する方法だとは思うのですが、最初から無制限に表示できるようになっていればこの煩わしさは解消!!ということでスクロールなしでカテゴリーを全部表示するコードを紹介します。
投稿編集画面のカテゴリー欄をスクロールなしで全部表示するコード
以下のコードをテーマのfunctions.phpへ追加すると前述したような問題が解決できます。
コードの内容を簡単に解説すると、
- admin_categorybox_height(管理画面のカテゴリーボックス)に
- #category-all{max-height:9999px}というスタイルを追加してください
という流れとなります。
/**********************投稿編集画面でカテゴリーを全部表示する**********************/
function admin_categorybox_height(){
?><style>#category-all{max-height:9999px}</style><?php
}
add_action('admin_head','admin_categorybox_height');
※カテゴリー数が多くて全部表示すると凄い長さになってしまうという場合は、コードの中の「max-height:9999px」の数字を変更することで指定した高さ以上にカテゴリーが存在する場合のみスクロール表示することができます。
余談ですが、functions.phpやCSSはたくさんのコードが並んでいます。後で「このコードは何だっけ?」となったり、不具合があったときに修正しやすいように記述を追加するときは上記コードの先頭のようにコメントを必ず付けるようにしましょう。
functions.phpへ安全にコードを追加するために
functions.phpはWordPressの動作に必要な関数というのを格納しておく大切なファイルです。
このファイルの編集に失敗すると画面が真っ白になって操作できなくなります。変更前にバックアップを取っておけば不具合が起きたときに元に戻せますが、大事なときに限ってバックアップを取り忘れるものです。
そんな不具合を最小限にするためにWordPressには便利なプラグインがあります。
functions.phpにコードを入力して動作するプログラムの塊のことを「スニペット」といいますが、このプラグインはスニペットをfunctions.phpに挿入したりスニペット毎に管理できるプラグインです。
このプラグインには簡単な構文エラーチェック機能も備わっていますので、これを使うことでより安全にスニペットを追加することができます。
テーマのfunctions.phpへ挿入するコードを管理するプラグイン「Code Snippets」

