【发布时间】:2015-11-19 18:29:11
【问题描述】:
美好的一天, 我对 php 的有限知识最终导致了一大堆代码。我希望有人可以向我展示一种更简单、更清洁的方法来实现这一点。不幸的是,我真的 真的 不擅长 php。
我正在努力实现的目标
我正在尝试为我的 Wordpress 网站编写一些徽章图标,这些图标链接到相应的课程帖子。换句话说,badge_post_id 中的缩略图应该链接到特定的 course_post_id。徽章缩略图还需要具有不同的外观,以显示“已获得”和“未获得”。
我有每个徽章缩略图当前使用的以下代码:
<!-- Badge must either be marked earned or unearned -->
<?php if (in_array($badge_post_id, $earned_achievements)) {
$css_class = 'earned-badge'; }
else {
$css_class = 'unearned-badge'; }
?>
<!-- Each badge requires this code -->
<span id="lesson-#" class="badge-class">
<a href="http://example.com/?p=$lesson_post_id" class="badge-link">
<span class="badge-icon">
<?php echo badgeos_get_achievement_post_thumbnail($badge_post_id, $image_size, $css_class) ;?>
</span>
<span class="badge-name"> LESSON TITLE </span>
</a>
</span>
我也在页面开头使用这个:
<!-- Everything gets this -->
<?php
$image_size = array(100,100);
$earned_achievements = badgeos_get_user_earned_achievement_ids(get_current_user_id());
?>
如您所见,对于 30 多个徽章来说,这是一大堆代码,而且跟踪起来非常头疼。
理想情况下,它会从与所有这些信息相关的某种表(可能是某种数组)中提取所有需要的信息:
课号:$badge_post_id, $lesson_post_id, $lesson_title, $css_class(已获得或未获得)
所以我可以键入更简单的人来获取每个徽章,而不是添加 100 行代码。
【问题讨论】:
-
这是一个pastebin,显示的混乱有点不同link
标签: php arrays wordpress simplify