Отображать только первый и последний термин таксономии для продукта
У меня есть пользовательская таксономия (год), и каждый год - это термин. Иногда фильм длится более одного года. Мне нужно распечатать только (first - Last)
год нет весь год из одного фильма.
Например, у меня есть этот год для дневников вампира:
2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 и 2016
Я хотел бы отобразить только первый и последний годы таким образом: Дневники вампира (2008 - 2016)
Мой код:
<?php $releaseyear_as_text = get_the_term_list( $post->ID,'release-year','', ' , ' ); ?>
<h1><a href="<?php the_permalink() ?>"><?php the_title(); ?> (<?php echo strip_tags($releaseyear_as_text) ?>)</a></h1>
<div class="clearfix"></div>
Как я могу достичь это?
Спасибо
3
Author: LoicTheAztec, 2016-08-20
1 answers
Я написал ниже код, который будет отображать именно то, что вы ожидаете. Кроме того, он будет обрабатывать 2 других случая:
- Когда есть только один срок (один год)
- Когда нет срока (нет года)
Вот ваш индивидуальный код:
<?php
// Getting the years for the current post ID in a string coma separated
$release_years_str = get_the_term_list( $post->ID,'release-year','', ',' );
// concerting years string in an array of years
$release_years_arr = explode(',', $release_years_str);
// Number of items (terms) in the array
$count = sizeof( $release_years_arr );
// First term year
$first_year = $release_years_arr[ 0 ];
// if there is more than on term (year)
if ( $count > 1 )
{
// Last term year
$last_year = $release_years_arr[ $count - 1 ];
// Formatting in a string the 2 years: (first - Last)
$releaseyear_as_text = ' (' . $first_year . ' - ' . $last_year . ')';
}
elseif ($count == 1) // If there is only one term (one year in the array)
{
$releaseyear_as_text = ' (' . $first_year . ')';
}
else // No term (No years, empty array)
{
$releaseyear_as_text = '';
}
?>
<h1><a href="<?php the_permalink() ?>"><?php the_title(); echo strip_tags($releaseyear_as_text); ?></a></h1>
<div class="clearfix"></div>
1
Author: LoicTheAztec, 2016-08-21 16:17:41