質問編集履歴

1 エラー情報の追加

naonao11

naonao11 score 89

2018/06/28 14:14  投稿

会員限定ページの一部を会員なしで見れるようにする
wordpressで会員限定ページを作成しています。urlを打った時、ログイン画面に飛ぶようになっているのですが一部それに除外したページを作成したいのですがうまくいきません・・・
一部例外ページ: sample.php
Template name: sample
functions.php内に以下を書き込みました。
```php
function require_login() {
   if (! is_page_template( 'sample.php' )) {
       if ( ! is_user_logged_in() && ! preg_match( '/^(wp-login\.php|async-upload\.php)/', basename( $_SERVER['REQUEST_URI'] ) ) && ! ( defined( 'DOING_AJAX' ) && DOING_AJAX ) && ! ( defined( 'DOING_CRON' ) && DOING_CRON ) ) {
       if ( ! is_user_logged_in() &&
            ! preg_match( '/^(wp-login\.php|async-upload\.php)/', basename( $_SERVER['REQUEST_URI'] ) ) &&
            ! ( defined( 'DOING_AJAX' ) && DOING_AJAX ) &&
            ! ( defined( 'DOING_CRON' ) && DOING_CRON ) ) {
           auth_redirect();
       }
   }
}
add_action( 'init', 'require_login' );
```
ご助力のほうよろしくお願いします…
ご助力のほうよろしくお願いします…
変更点を教えていただいてこのように書きました。
```php
function require_login() {
   if ( ! is_user_logged_in() &&
    ! array_search( basename( $_SERVER['REQUEST_URI'] ), ['wp-login.php', 'async-upload.php'] ) &&
    ! ( defined( 'DOING_AJAX' ) && DOING_AJAX ) &&
    ! ( defined( 'DOING_CRON' ) && DOING_CRON ) ) {
             auth_redirect();
   }
}
add_action( 'init', 'require_login' );
```
この場合、リダイレクトを繰り返し以下のようなエラーが出ました。
```
Submitted URI too large!
The length of the requested URL exceeds the capacity limit for this server. The request cannot be processed.
If you think this is a server error, please contact the webmaster.
Error 414
```
  • PHP

    38412 questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • WordPress

    15656 questions

    WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る