2017-10-21 15 views
0

をarray_key_exists`場合、私は、各ページのための適切なコンテンツを表示するためにカスタムポストタイプ `(他のクエリ

function discovr_campaign_endpoints() { 
add_rewrite_endpoint('overview', EP_PERMALINK); 
add_rewrite_endpoint('new-campaign-details', EP_PERMALINK); 
add_rewrite_endpoint('new-campaign-audience', EP_PERMALINK); 
add_rewrite_endpoint('new-campaign-page', EP_PERMALINK); 
add_rewrite_endpoint('new-campaign-ads', EP_PERMALINK); 
add_rewrite_endpoint('edit-campaign', EP_PERMALINK); 
add_rewrite_endpoint('analytics', EP_PERMALINK); 
add_rewrite_endpoint('preview-campaign', EP_PERMALINK); 
} 

add_action('init', 'discovr_campaign_endpoints'); 

single-post-type.php

<?php 
if(array_key_exists('overview', $wp_query->query_vars)){ 
    include("campaign-templates/single-campaign-overview.php"); 
} 
if(array_key_exists('new-campaign-details', $wp_query->query_vars)){ 
    include("campaign-templates/single-campaign-new-details.php"); 
} 
if(array_key_exists('new-campaign-audience', $wp_query->query_vars)){ 
    include("campaign-templates/single-campaign-new-audience.php"); 
} 
if(array_key_exists('new-campaign-page', $wp_query->query_vars)){ 
    include("campaign-templates/single-campaign-new-page.php"); 
} 
if(array_key_exists('new-campaign-ads', $wp_query->query_vars)){ 
    include("campaign-templates/single-campaign-new-ads.php"); 
} 
if(array_key_exists('edit-campaign', $wp_query->query_vars)){ 
    include("campaign-templates/single-campaign-edit.php"); 
} 
if(array_key_exists('analytics', $wp_query->query_vars)){ 
    include("campaign-templates/single-campaign-analytics.php"); 
} 
if(array_key_exists('preview-campaign', $wp_query->query_vars)){ 
    include("campaign-templates/single-campaign-preview.php"); 
}?> 

内を使用して複数のページを表示するcustom_post_typeを設定していますそれぞれendpoint

ただし、まだ表示したいと思います。

<?php the_content();?> 

これらのページが表示されていない場合は、single-post-type.phpページにあります。私はそれぞれの

if(array_key_exists('new-campaign-details', $wp_query->query_vars)) 
{ 
    include("campaign-templates/single-campaign-new-details.php"); 
}else{ 
    echo the_content(); 
} 

を使用してみましたが

は、しかし、これはその後the_content複数回表示され、私はこれらのエンドポイントのいずれかが存在するかどうかを照会するために、個々のelseif(array_key_exists周りif(*first* array_key_exists)ステートメントを追加する方法が必要と考えています以下の例のようにelse} echo the_content();

(私はecho 'Hello World';なくthe_content();を受け入れる交換する場合、これは仕事と意志のようです)

<?php 
if(array_key_exists('overview', $wp_query->query_vars)){ 
    include("campaign-templates/single-campaign-overview.php"); 
} 
elseif(array_key_exists('new-campaign-details', $wp_query->query_vars)){ 
    include("campaign-templates/single-campaign-new-details.php"); 
} 
elseif(array_key_exists('new-campaign-audience', $wp_query->query_vars)){ 
    include("campaign-templates/single-campaign-new-audience.php"); 
} 
elseif(array_key_exists('new-campaign-page', $wp_query->query_vars)){ 
    include("campaign-templates/single-campaign-new-page.php"); 
} 
elseif(array_key_exists('new-campaign-ads', $wp_query->query_vars)){ 
    include("campaign-templates/single-campaign-new-ads.php"); 
} 
elseif(array_key_exists('edit-campaign', $wp_query->query_vars)){ 
    include("campaign-templates/single-campaign-edit.php"); 
} 
elseif(array_key_exists('analytics', $wp_query->query_vars)){ 
    include("campaign-templates/single-campaign-analytics.php"); 
} 
elseif(array_key_exists('preview-campaign', $wp_query->query_vars)){ 
    include("campaign-templates/single-campaign-preview.php"); 
} 
else{ 
    echo the_content(); 
} 
?> 

ありがとうございます。

答えて

0

私の解決策は間違いありませんが、いくつかの重要な点が欠けています。

誰かがこの問題を抱えている場合は、それを疑ってください。全員からの愚かな間違い。

それは

<?php 
if(array_key_exists('overview', $wp_query->query_vars)){ 

include("campaign-templates/single-campaign-overview.php"); 
} 
elseif(array_key_exists('new-campaign-details', $wp_query->query_vars)){ 
    include("campaign-templates/single-campaign-new-details.php"); 
} 
elseif(array_key_exists('new-campaign-audience', $wp_query->query_vars)){ 
    include("campaign-templates/single-campaign-new-audience.php"); 
} 
elseif(array_key_exists('new-campaign-page', $wp_query->query_vars)){ 
    include("campaign-templates/single-campaign-new-page.php"); 
} 
elseif(array_key_exists('new-campaign-ads', $wp_query->query_vars)){ 
    include("campaign-templates/single-campaign-new-ads.php"); 
} 
elseif(array_key_exists('edit-campaign', $wp_query->query_vars)){ 
    include("campaign-templates/single-campaign-edit.php"); 
} 
elseif(array_key_exists('analytics', $wp_query->query_vars)){ 
    include("campaign-templates/single-campaign-analytics.php"); 
} 
elseif(array_key_exists('preview-campaign', $wp_query->query_vars)){ 
    include("campaign-templates/single-campaign-preview.php"); 
} 
else{ 
    get_header('new'); 
    if (have_posts()) : while (have_posts()) : the_post(); 
    the_content(); 
    endwhile; 
    endif; 
    get_footer('new'); 
} 
?> 
ました
関連する問題