制作会社から制作会社じゃない会社に転職が決まりました。制作会社で学んだことを残らず記事にしたいと思います。Blogの公式キャラクター「パンD」です。WordPressでページ毎にBasic認証を掛ける方法を紹介します。カテゴリーページ、固定ページ、カスタム投稿タイプページ、何でも来いです。まえがきWordPressで生成したページの一部にBasic認証を掛けたいという願望を持ったことは無いですか?私は例えばクライアントに制作中のページを確認してもらいたい時とかに「このページだけBasic認証かけたいな」って思います。WordPressの「パスワード保護」機能でもいいんですが、オリジナルのテーマだと設定が面倒だったりします。.htaccessでBasic認証かけると、フォルダごと掛かっちゃってWordPressで生成するページ全部がBasic認証下になったりします。なくて個別にbasic認証掛けたいんじゃ~って時は、phpでBasic認証をかけてあげましょう。実際に「phpでBasic認証をかける」という記事は沢山出てきたのですが、ちゃんと実装できるまでにかなりの時間を要したので、みなさんが同じ轍を踏まぬようその辺も含めて共有します。phpを使ってページ毎にBasic認証を掛ける実装自体は超簡単です。順を追って説明します。functions.phpにBasic認証を掛けるための関数を記述phpでBasic認証を掛けるためのコードをfunctions.phpに記述します。die($failed_text);}header.phpの一番上で条件分岐を使いBasic認証を掛けたいページで関数を呼び出すheader.phpは基本的に全ページに読み込まれていると思うので、一番上で条件分岐を利用して先ほどfunctions.phpに記述したBasic認証の関数を呼び出します。コードちゃんと書いたのに認証が通らないという方は「何回IDとパスを入力しても認証が通らない」を読んでみてください。endif;endif;2行目のif文でBasic認証を掛けたいページを条件分岐してあげます。3行目の「admin」及び「password」は、Basic認証のダイアログで入力する「ユーザー名」と「パスワード」です。「ユーザー名」と「パスワード」は配列になっているので自由に増やせます。&quot;panda&quot;);それでは条件分岐の部分、いくつか例を見ていきましょう。endif;endif;何回IDとパスを入力しても認証が通らないちゃんとコードを記述したはずなのに、何回やっても何回やってもユーザーIDとパスワードを聞かれるという場合、.htaccessに新たな記述をすることで解決します。WordPressが吐き出す.htaccessを下記の様に編集してください。WordPressハイライトになっている3,4行目を追加します。phpがセーフモード(CGI版)で動作しているとphpでのBasic認証が行えず、Basic認証が正常に通らないみたいです。上記を.htaccessに追記してサクッと解決しましょう。まとめphpがセーフモードで動いているのが盲点で、結構ハマりました。ぶっちゃけ諦めてWordPressのパスワード保護機能で無理やり限定公開したこともあります笑忘れないように記事として置いておきます。参考サイト様WordPress内の特定カテゴリにBasic認証をかけるWordPressと携帯とPHPのBasic認証(セーフモード版も)ありがとうございます。Blogをご覧いただきありがとうございます。Facebook、Twitterを通じて、皆様と交流していき色んな情報を共有していければな~と思ってます。@KoToRi_blog基本フォロー返します。RSSを登録するRSSはこちらから。Feedly使ってる人はこちらから。Blogの公式パンダ『パンD』の【動く】LINEスタンプがリリースされました。WordPressで静的ファイルを書き出す文字数制限を文字列の幅を合わせる形で行う方法[wordpress]力を貸してくださるプログラマーさんを募集します。