web-dev-qa-db-ja.com

特定のプラグインで生成されたページか子かどうかを確認する方法

あるページにアクセスしたときにリダイレクトを強制する機能を書いています。

私はのようなコードを使用して同様のことをしました

 if ( is_main_query() && 
       ( is_singular($restricted_post_types)||is_single() ) 
       && ! is_user_logged_in() ) { 
           wp_redirect(...) 
 }

しかし今、私は特定のクラスのページをターゲットにしたい(bbpressプラグインbc Genesisのプロファイル関連ページはそれらを破壊している)。 template_redirectフックのアクションからこれを識別するために私が使用できるものがわかりません。

私はパターン'<baseurl>/forums/user'を持つものは何でも私が必要とするものを捕らえるだろうと思います

1
Damon

パターン '/ forums/user'を捉えようとしているなら、PHPのstringpos関数を使うことができます。このようなものはあなたが探しているものをキャプチャする必要があります。

$url_pattern = "/forums/user";
$requested_uri = $_SERVER["REQUEST_URI"];

if(strpos($requested_uri, $url_pattern) == 0){
    //Your code goes here
}

代わりに "/ forums/user /"をマッチングパターンとして使用するように "末尾のスラッシュを強制する"が設定されているかどうか確認してください。このコードはテストされていませんが、動作するはずです。