固定ページにカテゴリーを設置する方法

通常ワードプレスには投稿ページにしかカテゴリーがないが、functions.phpにコードを追記することで固定ページにもカテゴリーを設置することが可能になる。

PHPが触れるとワードプレスでできる範囲が大きく広がるが、functions.phpはサイトの表示や管理画面の表示に読み込まれる極めて大事なファイルなので、無駄な改行や不要なスペースなどの記述ミスがあると画面が表示されなくなる危険性がある。

「コードを追記するだけで設置ができる」というコピペ感覚の認識は非常に危険

functions.phpの解説は割愛するが、編集する際の注意点を書いておくのでfunctions.phpの編集は必ず下記の注意事項を理解したうえで行うようにしてもらいたい。

固定ぺージにカテゴリーを設置する前に

functions.phpのトラブルを未然に防ぐための注意事項である。編集する場合は下記の注意事項にご注意いただき、自己責任で行ってもらいたい。

万が一、画面が真っ白になるなどのトラブルや管理画面にも入れないという事態が起こっても一切責任はとれない。

心配や不安が残る方は見送ることをおすすめする。

バックアップは必須

functions.phpを編集する際は、編集前に必ずバックアップをとっておく。

バックアップがあれば、万が一ミスによってエラーが出ても元に戻すことができるからである。

バックアップはコピペやダウンロードでできるもっとも簡単な対策なので、必ずやっておこう。

バックアップをとっていない場合、ミスの内容によってはサイトすべてが全滅し、復旧できなくなる可能性がある。

バックアップの注意

functions.phpのバックアップはテキストファイルで構わないが、保存方法を誤るとそのバックアップは機能しない可能性がある。

バックアップファイルを作成する際は文字コードに注意しなければならない。ファイルの文字コードが原因で画面が表示されなくなることがあるからだ。

バックアップは必ずUTF-8N」で保存すること。

「Shift_jis」などで保存してしまうと、それが原因で元に戻らない場合がある。

コードが正しくてもエラーになる?

functions.phpは正しく記述されていても画面が表示されなくなる場合がある。その多くは、無駄な改行不要なスペースだ。

画面を見やすくしようとして改行やスペースを挟むとエラーの原因になるので注意しよう。

原因はプラグイン?

ワードプレスユーザーは必ずといっていいほど利用しているプラグインだが、このプラグインがfunctions.phpのエラーの原因になるケースもある。

異なるプラグインが同じ関数を呼び出そうとするとエラーが出る場合があるのだ。コードの記述ミスがなく、余計な改行やスペースも入れていないのにエラーが出る場合はプラグインが原因かもしれない。

そのときは、FTPなどでサーバーにアクセスし「… /wp-content/plugins」の中でエラーを起こしているプラグインを一度削除してみよう。

ロリポップサーバーは「WAF設定」を無効に

ロリポップのサーバーを利用している方はfunctions.phpを更新すると「403エラー」が出る場合がある。

これは WAF設定が有効になっていることが原因。

ロリポップがブルートフォースアタックを受けてから、セキュリティ対策のためにWAF設定がデフォルトで有効になっているので、functions.phpを編集する場合は、先に WAF設定を無効にしてから行うようにしよう。

固定ページにカテゴリーを設置する

この方法は、投稿ページのカテゴリーをそのまま固定ページに反映させる方法である。投稿ページと固定ページを別々でカテゴライズする方法ではないので注意してほしい。

先の注意事項に注意いただき、下記のコードを functions.phpに追記する。

functions.php
add_action('init','add_categories_for_pages');
function add_categories_for_pages(){
   register_taxonomy_for_object_type('category', 'page');
}
add_action( 'pre_get_posts','nobita_merge_page_categories_at_category_archive' );
function nobita_merge_page_categories_at_category_archive( $query ) {
if ( $query->is_category== true && $query->is_main_query() ) {
$query->set('post_type', array( 'post', 'page', 'nav_menu_item'));
}
}

保存後、固定ページのサブメニューの中にカテゴリーが追加される。

まとめ:固定ページにカテゴリーを設置する

何度も言うが、functions.phpは記述を誤るとウェブサイトそのものが機能しなくなる可能性がある。この記事に書いている意味がわからない場合はfunctions.phpの編集をしないことをおすすめする。

編集する場合は、必ず自己責任で行うようにしてもらいたい。

コメントを残す

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

日本語が含まれない投稿はシステムによって弾かれますのでご注意ください。