[英]Turning this switch-statement into a function (and separate logic from content)?
基本上,我想打开以下开关语句(在Wordpress模板文件中):
<?php preg_match( '!<div class="thumblock ">(.*)</div>!si' , wp_gdsr_render_article_thumbs(0, false, "", 0, "", false) , $n );
$thumbs_number = strip_tags( $n[1] ); ?>
<div class="topic-like-count
<?php // Apply style based on number of votes
switch ($thumbs_number) {
case ($thumbs_number == 0):
case ($thumbs_number == 1): echo ' average'; break;
case ($thumbs_number == 2):
case ($thumbs_number == 3): echo ' good'; break;
case ($thumbs_number == 4):
case ($thumbs_number == 5): echo ' great'; break;
case ($thumbs_number == 6):
case ($thumbs_number == 7): echo ' excellent'; break;
default:
if ($thumbs_number <= -1) echo "bad";
else if ($thumbs_number > 7) echo "brillant";
}
?>
">
<h4><?php wp_gdsr_render_article_thumbs(); ?></h4>
<?php if ( $thumbs_number == 1 || $thumbs_number == -1 ) : ?>
<span><?php _e( 'vote' ); ?></span>
<?php else : ?>
<span><?php _e( 'votes' ); ?></span>
<?php endif; ?>
</div>
放入一个可以在模板中像这样使用的函数(存储在functions.php中 ):
<?php rating_class(); ?>
有什么建议么?
(这个问题有点Worpdress,但我认为它更像是一个PHP问题)
获得评分等级:
function get_rating_class($thumbs_number) {
if ($thumbs_number < 0) return 'bad';
if ($thumbs_number < 2) return 'average';
if ($thumbs_number < 4) return 'good';
if ($thumbs_number < 6) return 'great';
if ($thumbs_number < 8) return 'excellent';
return 'brillant';
}
打印评分等级:
function rating_class($thumbs_number) {
echo get_rating_class($thumbs_number);
}
打印投票短语:
function votes($thumbs_number) {
echo ($thumbs_number == 1 || $thumbs_number == -1) ? _e('vote') : _e('votes');
}
模板代码:
<?php
preg_match( '!<div class="thumblock ">(.*)</div>!si' , wp_gdsr_render_article_thumbs(0, false, "", 0, "", false) , $n );
$thumbs_number = strip_tags( $n[1] );
?>
<div class="topic-like-count <?php rating_class($thumbs_number); ?>">
<h4><?php wp_gdsr_render_article_thumbs(); ?></h4>
<span><?php votes($thumbs_number); ?></span>
</div>
<?php // Apply style based on number of votes
function rating_class($thumbs_number)
{
switch ($thumbs_number) {
case ($thumbs_number == 0):
case ($thumbs_number == 1): echo ' average'; break;
case ($thumbs_number == 2):
case ($thumbs_number == 3): echo ' good'; break;
case ($thumbs_number == 4):
case ($thumbs_number == 5): echo ' great'; break;
case ($thumbs_number == 6):
case ($thumbs_number == 7): echo ' excellent'; break;
default:
if ($thumbs_number <= -1) echo "bad";
else if ($thumbs_number > 7) echo "brillant";
}
}
?>
<?php rating_class($thumbs_number); ?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.