2015-11-06 28 views
1

我已經被帶到重新設計和大學部門的WordPress的網站,我一直在嘗試使用木材使模板更清潔,更容易維護。使用木材來重構複雜的Wordpress模板

到目前爲止,它一直做得很好,但我很難將這個學位指南模板導入控制器+視圖設置。

有學位和課程的自定義帖子類型。在學位指南中還有一個用於將課程分爲學期和年級的定製分類法。

我已經包含了以下指南的新生年代碼以及整個模板的要點鏈接。

我真的只是不確定從哪裏開始。所以,任何幫助,指針或資源非常感謝!

<?php if (is_single ('19871')) { 
     $freshmandegreeterms = 'freshman-year-bfa-filmmaking'; 
    $springfreshmandegreeterms = 'spring-freshman-year-bfa-filmmaking'; 
    $fallfreshmandegreeterms = 'fall-freshman-year-bfa-filmmaking'; 
     } elseif (is_single ('19872')) { 
     $freshmandegreeterms = 'freshman-year-bs-mis'; 
    $springfreshmandegreeterms = 'spring-freshman-year-bs-mis'; 
    $fallfreshmandegreeterms = 'fall-freshman-year-bs-mis'; 
     } elseif (is_single ('19873')) { 
     $freshmandegreeterms = 'freshman-year-bm-mis'; 
    $springfreshmandegreeterms = 'spring-freshman-year-bm-mis'; 
    $fallfreshmandegreeterms = 'fall-freshman-year-bm-mis'; 
     } 
     elseif (is_single ('19874')) { 
     $freshmandegreeterms = 'freshman-year-ba-pop'; 
    $springfreshmandegreeterms = 'spring-freshman-year-ba-pop'; 
    $fallfreshmandegreeterms = 'fall-freshman-year-ba-pop'; 
     } 
     ?> 
    <h2>Freshman Year</h2> 
    <div id="freshmanyear" class="row"> 
     <div id="freshmanfall" class="medium-6 large-6 columns"> 
     <table> 
      <tr> 
      <td style="font-weight:bold;">Fall</td> 
      </tr> 
      <?php 
    $fallfreshmanquery = new WP_Query(array ('post_type'  => 'course', 
    'posts_per_page' => 20, 
     'order' => ASC, 
    'orderby' => 'menu_order', 
    'tax_query' => array(
     array(
      'taxonomy' => 'degree-requirement', 
      'terms' => $fallfreshmandegreeterms, 
      'field' => 'slug' 
     ) 
    ))); 
while ($fallfreshmanquery->have_posts()) : $fallfreshmanquery->the_post(); 
?> 
      <tr> 
      <td><a href="#" data-reveal-id="myModal<?php the_ID(); ?>"> 
       <?php the_title(); ?> 
       </a> 
       <div id="myModal<?php the_ID(); ?>" class="reveal-modal" data-reveal> 
       <?php the_content(); ?><br/> 
        <?php if (get_post_meta(get_the_ID(), 'wpcf-credit-hours', true)) : ?> 
       Credit Hours : <?php echo get_post_meta(get_the_ID(), 'wpcf-credit-hours', true); ?> 
       <?php endif; ?> 

       <a class="close-reveal-modal">&#215;</a> </div></td> 
      </tr> 
      <?php endwhile; ?> 
     </table> 
     </div> 
     <!-- end freshman fall --> 
     <div id="freshmanspring" class="medium-6 large-6 columns"> 
     <table> 
      <tr> 
      <td style="font-weight:bold;">Spring</td> 
      </tr> 
      <?php 
    $springfreshmanquery = new WP_Query(array ('post_type'  => 'course', 
    'posts_per_page' => 20, 
     'order' => ASC, 
    'orderby' => 'menu_order', 
    'tax_query' => array(
     array(
      'taxonomy' => 'degree-requirement', 
      'terms' => $springfreshmandegreeterms, 
      'field' => 'slug' 
     ) 
    ))); 
while ($springfreshmanquery->have_posts()) : $springfreshmanquery->the_post(); 
?> 
      <tr> 
      <td><a href="#" data-reveal-id="myModal<?php the_ID(); ?>"> 
       <?php the_title(); ?> 
       </a> 
       <div id="myModal<?php the_ID(); ?>" class="reveal-modal" data-reveal> 
       <h2> 
        <?php the_title(); ?> 
       </h2> 
       <p> 
        <?php the_content(); ?><br/> 
        <?php if (get_post_meta(get_the_ID(), 'wpcf-credit-hours', true)) : ?> 
       Credit Hours : <?php echo get_post_meta(get_the_ID(), 'wpcf-credit-hours', true); ?> 
       <?php endif; ?> 
       </p> 
       <a class="close-reveal-modal">&#215;</a> </div></td> 
      </tr> 
      <?php endwhile; ?> 
     </table> 
     </div> 
     <!-- end freshman Spring --> 
    </div> 
    <!-- end freshman year --> 

這是鏈接到full gist

回答

0

不是一個真正具體的問題,但這裏有一些可能會有所幫助的問題。

您可以爲某些控制器邏輯創建一個wordpress自定義插件(一個類)。在這個插件中,它可以確定$ freshmandegreeterms的值。

您可以對$ freshmandegreeterms的值進行排序的一種方法是創建一個接受參數的函數 - 即'19874'。例如:

public function set_freshman_terms($code) { 
    $terms = [ 
     //Add necessary terms below 
     '19871' => 'freshman-year-bfa-filmmaking', 
     '19872' => 'freshman-year-bs-mis', 
    ] 

    $term = $terms[$code]; 

    $freshman   = []; 
    $freshman['term'] = $term; 
    $freshman['fall'] = 'fall-'.$term; 
    $freshman['spring'] = 'spring-'.$term; 

    //Set context 
    $context['freshman'] = $freshman; 
} 

您甚至可以將該函數也拉入更小的函數中。但是,如果您將這些數據稱爲「樹枝」,將會很愉快:

{{ freshman.term }} 
{{ freshman.fall }} 
{{ freshman.spring }}