2017-10-07 5 views
2

現在のWordpress URLがエンドポイントページであるかどうか確認できますか?プリティパーマリンクが使用 エンドポイントを持っているかどうかを確認するWorpdress URLを調べる

  • である

    • はwp_head後、後半に尋ねたが、それ以前にのみ使用して

  • 優れていることができます:

    global $wp_query; 
    isset($wp_query->query_vars['articles']) 
    

    がが正しく動作していないです。私は答えとしてそれを受け入れることができません。それへのリンクはありません。

    これはこの問題の詳細なようです。例えば、スラッグが'articles'のアーカイブページのreturns trueの例、またはこのスラッグまたは単一のページ'articles'または別のユニークなスラッグを使用するカスタムポストタイプの場合は、'articles'を使用する別のユニークなスラッグは、書き換えルールのエンドポイント "指示対象"ではありません。

    注:誰かがset_query_var('articles', $articles)をテンプレートスコープに渡す場合は、returns trueです。 (それ以外の場合、の機能はのテンプレートファイルプラグインを見つけ出すまでになりました)。

    変数がset_query_var()内に設定されている場合、問題は「場所」または「アドレス」として他の例でも続きます。

    トラベリングdb all for post_nameは、投稿とページスラッグを返します。カスタムアーカイブの書き換えルールはdbにありません。

    URLのの末尾にエンドポイントがある可能性があります。そのため、条件付チェックは機能しません。

    これまでのところ唯一の助けはどこかに見つけ、この関数である(cutted):

    function is_endpoint(){ 
    
        if(!get_option('permalink_structure')) return false; 
    
        global $wp; 
        if(!$wp->request) return false; 
        $parts = explode('/', $wp->request); 
        if(empty($parts)) return false; 
    
        // https://codex.wordpress.org/Reserved_Terms 
        $reserved = array(
         'revision', 
         'nav_menu_item', 
         'custom_css', 
         'customize_changeset', 
         'action', 
         'attachment', 
         'attachment_id', 
         .. AND ALL OTHER FROM CODEX DOCS ... 
         'year' 
        ); 
    
        //global $wp_query (clashes with added stuff); 
        global $wp_the_query; 
        foreach($parts as $maybe_endpoint){ 
         if(!$maybe_endpoint || !trim($maybe_endpoint)) continue; 
         $maybe_endpoint = trim($maybe_endpoint); 
         if(post_type_exists($maybe_endpoint)) continue; 
         if(in_array($maybe_endpoint, $reserved)) continue; 
         /** if(is_slug($maybe_endpoint)) continue;**/ // MAYBE SOMETHING LIKE THIS? 
    
         /* Final conditional, all other possibilities removed: */ 
         if(isset($wp_the_query->query_vars[$maybe_endpoint])) { 
          return true; 
          break; 
         } 
        } 
        return false; 
    } 
    

    しかし、にアーカイブ/登録タクソノミナメクジを除外するだけでなく書き換えルールを調べているようです。

    これに可能な入力はありますか?

    +0

    これは本当に面白かったです –

    答えて

    0

    get_post_type_archive_linkロジックで機能を拡張する必要があるかもしれません。ポストタイプを知らずに。 if ($post_type_obj->rewrite['with_front']) $struct = $wp_rewrite->front . $struct else $struct = $wp_rewrite->root . $struct;を調べてください。他の人より具体的な回答があります。これは単なるヒントです。申し訳ありませんが、これはコメントではなく、答えになります。 Woteをしないでください。

    関連する問題