校园信息平台,是一款基于学校信息数据的内容管理系统,能够对学校信息数据进行归类管理,并为用户供给信息查找,信息发布等服务。
本例采用PHP开源软件WordPress进行二次研发来实现项目需要。WordPress本身便是一个博客管理系统,非常适合做为内容管理平台运用。
本例中的信息搜索的运行效果,如图所示。
■ 图8.4 信息搜索
01
搜索功能
在wordpress中,搜索功能是经过调用get_search_form()函数来实现的。打开主题的header模板,在其导航菜单的左侧添加搜索表单代码,如下所示。
<div class="search-form-wrap">
… <?phpget_search_form();?></div>
倘若主题中无定义搜索表单模板searchform.php文件,则get_search_form()函数会表示wordpress默认的搜索框,其样式常常不可满足项目的整体需求,因此,实质研发过程常常需要自定义搜索表单模板文件。
本项目搜索表单模板文件如以上8.3.5小节所示,其页面效果如图8.19所示;搜索结果运用默认的index.php模板,而不单独定义search.php文件,其页面效果如图8.4所示。
■ 图8.19 主导航菜单折叠表示
02
内容表示
页面中内容的表示运用单独的子模板来实现,其文件为content.php。代码如下:
<article id="post-<?php the_ID(); ?>" <?php post_class( post-content
); ?>> <header class="entry-header" itemprop="mainEntityOfPage"><?php the_title(sprintf(<h2 class="entry-title p-name" itemprop="name headline"><a href="%s" rel="bookmark" class="u-url url" itemprop="url">, esc_url(get_permalink())), </a></h2>);?></header>if(in_array(get_post_format(), array(aside,standard
,))) {?> <div class="entry-summary p-summary" itemprop="description"><?php the_excerpt(); ?></div><?php }else
{?> <div class="entry-content e-content" itemprop="description articleBody"><?phpthe_content(sprintf(__(Continue Reading %s, wm), the_title(<span class="screen-reader-text">, </span>, false
)));
wp_link_pages( array
( before => <div class="page-links"><span class="page-links-title">.__(Pages:, wm) . </span>
, after=></div>
, link_before => <span>
, link_after => </span>
, pagelink => <span class="screen-reader-text">. __(Page:, wm) . </span>%
, separator => <span class="screen-reader-text">, </span>
,
)
); ?><div class="clear"></div></div><div class="entry-meta"><?php wm_entry_meta(); ?></div></article>
其页面效果如图8.19所示。信息内容下面的发布日期、作者等辅助信息,由自定义函数 wm_entry_meta() 生成。
wm_entry_meta()函数存放在主题的functions.php文件中,其代码如下:
function wm_entry_meta()
{ echo <ul>
;
// 判断信息是不是置顶
if (is_sticky() && is_home() && ! is_paged() ) { echo <li class="sticky-post"><i class="fa fa-bookmark"></i>.esc_html__(Topping, wm).</li>
;
}
// 发布时间 echo <li class="posted-on"><i class="fa fa-calendar"></i><span class="screen-reader-text">.esc_html__(Posted on:, wordstar).</span><a href=".esc_url(get_permalink())." rel="bookmark"><time class="entry-date published dt-published" itemprop="datePublished" datetime=".esc_attr(get_the_date(c)).">.get_the_date().</time><time class="entry-date updated dt-updated screen-reader-text" itemprop="dateModified" datetime=".esc_attr(get_the_modified_date(c)).">. esc_html(get_the_modified_date()).</time></a></li>
;
// 发布者
if(!is_single()){ echo <li class="byline author p-author vcard hcard h-card" itemprop="author " itemscope itemtype="http://schema.org/Person"><i class="fa fa-user"></i><span class="screen-reader-text">. esc_html__(Author:, wordstar).</span><span class="screen-reader-text">.get_avatar( get_the_author_meta( ID ), 40 ).</span><a class="url u-url" href=".esc_url(get_author_posts_url(get_the_author_meta(ID)))." rel="author" itemprop="url" ><span class=" fn p-name" itemprop="name">.esc_html(get_the_author()).</span></a></li>
;
}
// 信息类型
if (($categories_list = get_the_category_list(, )) && wm_categorized_blog() ) { echo <li class="cat-links"><i class="fa fa-folder-open"></i><span class="screen-reader-text">. esc_html__(Categories:, wm).</span>
.ent2ncr($categories_list). </li>
;
}
// 信息标签
if ($tags_list = get_the_tag_list(, , )) { echo <li class="tag-links"><i class="fa fa-tags"></i><span class="screen-reader-text">. esc_html__(Tags:, wm).</span>
.ent2ncr($tags_list). </li>
;
}
// 留言
if (! is_single() && ! post_password_required() && ( comments_open() || get_comments_number() ) ) { echo <li class="comment"><i class="fa fa-comments"></i>
; comments_popup_link(__(Leave a comment, wm).<span class="screen-reader-text">: .get_the_title().</span>
); echo </li>
;
}
// 编辑链接 edit_post_link(__(编辑Edit, wm), <li class="edit-link"><i class="fa fa-pencil"></i>, </li>
); echo <div class="clear"></div></ul>
; }以上代码中运用了非常多WordPress函数,因为篇幅的限制这儿再也不仔细解释它们的用法。另一,代码中还运用了自定义函数wm_categorized_blog(),该函数用于表示内容的归类类型,其代码请参见教材源码。
03
视频讲解
视频加载失败,请刷新页面再试 刷新
04
参考书籍
《PHP项目案例研发从入门到实战-微课视频版》
ISBN:9787302570974
作者:马石安、魏文平
定价:79.80元
05
精彩举荐 PHP项目案例研发 | WordPress开源软件安装及应用网络安全技术 | 勒索软件的特征和防范网络安全技术 | 身份认证的革命——生物特征身份认证通关操作系统 | 进程的概念(附视频限免)人工智能实践: 基于T-S 模型的模糊推理(附源码)Python自然语言处理|语料清洗(附视频)Python编程|实现基于字典的通讯录CCF CSP-J/S第1轮认证考纲详解Python 韩信点兵思政案例(含优惠码)设备学习案例︱人脸识别和人脸检测(附视频)Python ︱爬取天气预报信息(附视频)《设备学习》实验指点书(附实验参考+代码)Python爬虫综合实战 │ 创建云起书院爬虫(附代码)Python爬虫实战 │ Email提醒(附代码)Python深度学习 │一文把握卷积神经网络
|