2014-03-05 45 views
0

有誰知道你將如何顯示一個自定義帖子類型根據你在什麼職位類型?如何循環通過Wordpress中的自定義帖子,並根據頁面標題顯示

例如,如果我轉到我的www.url.com/services/digital頁面我想要顯示數字投資組合或者如果我轉到我的www.url.com/services/audio頁面我想要顯示音頻投資組合。

只是爲了澄清我有兩個文章類型 -

  1. 服務
  2. 組合

我已經寫的代碼工作正常,但肯定有必須做一個簡單的方法我有六個類別我不想在同一頁面上六次不同地寫出此代碼

<?php 

     if (is_single('digital')) { 

      $the_query = new WP_Query(array('post_type' => 'portfolio', 'posts_per_page'=>'3', cat=>'9')); 

      while ($the_query->have_posts()) : $the_query->the_post(); 

       echo'<div class="group service_portfolio">'; 

        echo'<div class="service_portfolio_left">'; 

         echo '<h2 style="color:#52514e; font-size:1.5em; margin-bottom:5%;">'; echo'Client'; echo'</h2>'; 

         echo'<p style="color:#757573; margin-bottom:5%;">'; echo the_title(); echo'</p>'; 

         echo '<h2 style="color:#52514e; font-size:1.5em; margin-bottom:5%;">'; echo'What we done'; echo'</h2>'; 

         echo '<p style="color:#757573; margin-bottom:5%;">'; echo the_field('what_was_done'); echo'</p>'; 

         echo'<h2 style="color:#52514e; font-size:1.5em; margin-bottom:5%;">'; echo'See for yourself'; echo'</h2>'; 

         echo '<p class"bottom_p">'; echo'<a href="http://'; the_field('portfolio_url'); echo'">'; echo the_field('portfolio_url'); echo' </a>'; echo '</p>'; 

        echo'</div>'; 

       echo'<div class="service_portfolio_left" style="text-align:right;">'; 

       echo the_post_thumbnail(); 

       echo'</div>'; 

       echo'</div>'; 


        endwhile; 
        wp_reset_postdata(); 
       } 

       ?> 

    <!-- Output print work --> 

    <?php 

     if (is_single('print')) { 

      $the_query = new WP_Query(array('post_type' => 'portfolio', 'posts_per_page'=>'3', cat=>'10')); 

      while ($the_query->have_posts()) : $the_query->the_post(); 

       echo'<div class="group service_portfolio">'; 

        echo'<div class="service_portfolio_left">'; 

         echo '<h2 style="color:#52514e; font-size:1.5em; margin-bottom:5%;">'; echo'Client'; echo'</h2>'; 

         echo'<p style="color:#757573; margin-bottom:5%;">'; echo the_title(); echo'</p>'; 

         echo '<h2 style="color:#52514e; font-size:1.5em; margin-bottom:5%;">'; echo'What we done'; echo'</h2>'; 

         echo '<p style="color:#757573; margin-bottom:5%;">'; echo the_field('what_was_done'); echo'</p>'; 

         echo'<h2 style="color:#52514e; font-size:1.5em; margin-bottom:5%;">'; echo'See for yourself'; echo'</h2>'; 

         echo '<p class"bottom_p">'; echo'<a href="http://'; the_field('portfolio_url'); echo'">'; echo the_field('portfolio_url'); echo' </a>'; echo '</p>'; 

        echo'</div>'; 

       echo'<div class="service_portfolio_left" style="text-align:right;">'; 

       echo the_post_thumbnail(); 

       echo'</div>'; 

       echo'</div>'; 


        endwhile; 
        wp_reset_postdata(); 
       } 

       ?> 
+0

要清楚你想爲所有六個頁面使用相同的頁面模板?你確定最終你想做什麼? – brs14ku

+0

沒錯這就是一個頁​​面模板 - 基本上那裏有六頁是所有看起來相同,它們是「服務」,我的客戶端提供.. 1.數字 2.音頻 3.打印 4.社會化媒體 5 。PR 6.內容營銷 在這些網頁我也想顯示與該服務,因此上面的代碼組合項目.. – Kieran

+0

你是怎麼標準類別與自定義文章類型相關聯? –

回答

1

聽起來我想要使用6x存檔模板(archive-services.php,archive-digital.php等),因爲這是呈現CPT的標準方式,它消除了對條件和查詢部分的需求。然後在其中的每一箇中,您都可以在循環中使用template part標記;這樣您就可以輕鬆地重用所有6X模板相同的標記,使用:

<?php get_template_part($slug, $name); ?> 

這樣做,這樣給你一定的靈活性,同時避免所有的重複。所以,你的6X檔案模板可能是這樣的:

<?php 
    get_header(); 

    if(have_posts()) : while(have_posts()) : the_post(); 

     get_template_part('loop', 'preview'); 

    endwhile; endif; 

    get_footer(); 
?> 

將加載loop-preview.php,其中將包含標記到循環中去。

編輯: @ AndrewBartel的評論讓我意識到,我過度思考這一點。如果您提到的6x類別爲,只有用於您的自定義帖子類型,則可以改爲創建6x類別模板(category-digital.php,category-audio.php等)。這些將顯示所有所有屬於該類別的帖子。這可能是處理它最直接的方式;模板部分位仍然有效。檢查WP Codex entry for templates欲知更多信息。

+0

我剛剛意識到你更感興趣的是顯示不同的*類別*,而不是不同的帖子類型,所以我可能需要重新思考我的答案... – Dre

+1

你可以做category- {post-type} .php –

+0

沿線的東西? <?('post_type'=>'portfolio','posts_per_page'=>'3',cat =>'9'));如果(is_single('digital')){the_query = new WP_Query ('post_type'=>'portfolio','posts_per_page'=>'3',cat =>'10'));否則if(is_single('audio')){ $ the_query = new WP_Query ($ the_query-> have_posts()):$ the_query-> the_post(); echo'ALL我的代碼在這裏顯示組合'; endwhile; wp_reset_postdata(); } } } ?> – Kieran

相關問題