Меня привлекли к редизайну и сайту WordPress департамента колледжа, и я экспериментировал с использованием Timber, чтобы сделать шаблоны более чистыми и простыми в обслуживании.
Пока все шло действительно хорошо, но у меня много проблем с получением этого шаблона руководства по степени в настройке контроллера + вида.
Существуют пользовательские типы сообщений для степеней и курсов. Существует также специальная таксономия для сортировки курсов по семестрам и годам.
Ниже приведен код руководства для новичка года вместе со ссылкой на суть всего шаблона.
Я просто не знаю, с чего начать. Так что любая помощь, указатели или ресурсы с благодарностью!
<?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">×</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">×</a> </div></td>
</tr>
<?php endwhile; ?>
</table>
</div>
<!-- end freshman Spring -->
</div>
<!-- end freshman year -->
Вот ссылка на полная суть.
Не совсем конкретный вопрос, но вот некоторые вещи, которые могут помочь.
Вы можете создать собственный плагин 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 }}
Других решений пока нет …