多个:
<?php if ( in_category('10') ) echo'<p class="class1"><span class="icon-home"></span></p>'; ?>
<?php if ( in_category('25') ) echo'<p class="class2"><span class="icon-cat"></span></p>'; ?>
<?php if ( in_category('38') ) echo'<p class="class3"><span class="icon-dog"></span></p>'; ?>
<?php if ( in_category('44') ) echo'<p class="class4"><span class="icon4"></span></p>'; ?>
<?php if ( in_category('50') ) echo'<p class="class5"><span class="icon5"></span></p>'; ?>
<?php if ( in_category('61') ) echo'<p class="class6"><span class="icon6"></span></p>'; ?>
如何优化写法?谢谢
*又编辑了一下,in_category 和 后面的 class 其实是没有规律的。
回复内容:
多个:
<?php if ( in_category('10') ) echo'<p class="class1"><span class="icon-home"></span></p>'; ?>
<?php if ( in_category('25') ) echo'<p class="class2"><span class="icon-cat"></span></p>'; ?>
<?php if ( in_category('38') ) echo'<p class="class3"><span class="icon-dog"></span></p>'; ?>
<?php if ( in_category('44') ) echo'<p class="class4"><span class="icon4"></span></p>'; ?>
<?php if ( in_category('50') ) echo'<p class="class5"><span class="icon5"></span></p>'; ?>
<?php if ( in_category('61') ) echo'<p class="class6"><span class="icon6"></span></p>'; ?>
如何优化写法?谢谢
*又编辑了一下,in_category 和 后面的 class 其实是没有规律的。
for($i=1; $i<7; $i++) {
if(in_category($i)) {
echo "<p class=\"class{$i}\"></p>";
}
}对于代码优化我没有太多见解,留给其他小伙伴补充吧
更新:
再次优化了一下
$arr = array(
10=>'<p class="class1"><span class="icon-home"></span></p>',
25=>'<p class="class2"><span class="icon-cat"></span></p>',
38=>'<p class="class3"><span class="icon-dog"></span></p>',
44=>'<p class="class4"><span class="icon4"></span></p>',
50=>'<p class="class5"><span class="icon5"></span></p>',
61=>'<p class="class6"><span class="icon6"></span></p>'
);
function inCatToHtml($arr) {
while (list($key, $value) = each($arr)) {
if(in_category($key)) {
echo $arr[$key];
}
}
}
inCatToHtml($arr);echo 可以根据实际情况优化,最后返回一个 in_category 的数组HTML,然后统一处理
<?php
foreach(range(1,6) as $categoryNum) {
if(in_category($categoryNum)) {
echo '<p class="class"'.$categoryNum.'"></p>';
}
}不过感觉html里面混写php很low...
推荐
php模板引擎。
易优cms汽车车辆租赁源码1.7.2下载由于疫情等原因大家都开始习惯了通过互联网上租车服务的信息多方面,且获取方式简便,不管是婚庆用车、旅游租车、还是短租等租车业务。越来越多租车企业都开始主动把租车业务推向给潜在需求客户,所以如何设计一个租车网站,以便在同行中脱颖而出就重要了,易优cms针对租车行业市场需求、目标客户、盈利模式等,进行策划、设计、制作,建设一个符合用户与搜索引擎需求的租车网站源码。 网站首页
前端单页或是一个简单的js引擎。
======== 噗,题主修改了下,我也改下 ==========
<?php
$categoryIcon = [
10 => 'icon-home',
....
];
具体就不写了...和上面一样。
<?php
$num = count(['1','2','3','4','5','6']);
for( $i=0; $i<$num; $i++ )
{
if(in_category($num[$i]))
{
echo "<p class=class".$i."></p>";
}
}
?>
<?php if ($currentCategory = Category::currentCategory()): ?> <p class="<?=$currentCategory->labelClass?>"><span class="<?=$currentCategory->iconClass?>"></span></p> <?php endif; ?>
表现层只关心表现就行了,至于一共有多少个category,如何判断当前页面的category,每个category的class是什么,无论你准备放db也好,写数组配置也好,都封装到Category类里面去。
上面写了这么多,我还是觉得楼主原先的写法一目了然
觉得楼主这个多个if的判断条件直接用switch比较合适吧。不知道楼主这个in_category方法里面的代码是什么样的的,就大胆改变一下这个方法吧。方法里用switch:
function in_category( $num ) {
switch ($num) {
case '10':
echo'<p class="class1"><span class="icon-home"></span></p>';
break;
case '25':
echo'<p class="class2"><span class="icon-cat"></span></p>';
break;
case '38':
echo'<p class="class3"><span class="icon-dog"></span></p>';
break;
case '44':
echo'<p class="class4"><span class="icon4"></span></p>';
break;
default:
echo '';
break;
}
}然后直接in_category( 10 )可以吗?
假设题主是在判断文章属于哪个分类就输出某个ICON
那么你可以先对分类做一个定义,
$categroies = [
10=>['class'=>'icon-home'],
25=>['class'=>'icon-dog'],
38=>['class'=>'icon-cat'],
44=>['class'=>'icon4']
//当然这里的数据可以是从数据库里封装好的
];
//等待输出的html
$html = '';
$class_i = 1;
foreach($categories as $key => $category) {
if (in_category($key)) {
$html .= '<p class="class' . ($class_i++) . '"><span class="' . $category['class'] . '"></span></p>';
}
}
echo $html;这里不知道in_category的用途,如果是为了判断某个文章是否在某个分类因而需要去遍历所有的分类,这样的方式还是挺不合逻辑的。
前后端分离最好了










