优化emlog:把日志tag添加为META关键字
时间:2010-11-30 来源:搜也搜索不到
笔者收益良多,这样也能优化?(才浅没办法,不要扔砖!)
可能KLLER忘了写上具体方法了,天马不怕献丑,今天在这里就放出详细操作步骤,毕竟修改代码是件危险的事,还需谨慎。
1.定位目标:要修改的文件在 content/templates/default 文件夹
2.初步思路:
emlog是把多个模板分开然后分别调用,如header、side、footer等,如果想把正文页面的tag添加到Meta关键字中,首先要找到正文页面的模板。It is the file echo_log.php
但是正文页面中的“标签”是带超链接的,如图
既然要去掉标签的超链接 ,我们就要知道“标签显示功能”是哪个函数或那几句代码来执行的,打开文件echo_log.php 发现 <span class="tags"><?php blog_tag($logid); ?></span> 此行代码,聪明的你也一定看出来了,是 blog_tag() 函数来显示标签的 !
此函数在 module.php 文件中被定义,现在问题是:务必成功改造 blog_tag() 函数,使之可以输出不带超链接的标签。好,我们打开 module.php ,改造 blog_tag() 函数。
原函数:
<?php
//blog:日志标签
/*function blog_tag($blogid){
global $log_cache_tags;
if (!empty($log_cache_tags[$blogid]))
{
$tag = '标签:';
foreach ($log_cache_tags[$blogid] as $value)
{
$tag .= " <a href=\"".BLOG_URL."?tag=".$value['tagurl']."\">".$value['tagname'].'</a>';
}
echo $tag;
}
}*/
?>
改造后是?如下:
<?php
//blog:日志标签
function blog_tag($blogid,$keyword='' ){
global $log_cache_tags;
if (!empty($log_cache_tags[$blogid]))
{
//作为关键字使用(不需要超链接,并加上逗号)
if($keyword == 'keyword'){
foreach ($log_cache_tags[$blogid] as $value){
$tag .= ','.$value['tagname'];
}
echo $tag;
}else{ //输出标签(带链接地址)
$tag = '标签:';
foreach ($log_cache_tags[$blogid] as $value)
{
$tag .= " <a href=\"".BLOG_URL."?tag=".$value['tagurl']."\">".$value['tagname'].'</a>';
}
echo $tag;
}
}//end if
}
?>
改写的思路:添加一个函数参数 $keyword ,默认为 NULL ,再在函数体中增加一个判断语句 —— 当 $keyword 参数值为 “keyword” 时,则输出不带超链接的标签,并加上逗号 (不带链接、有逗号是关键字的必要条件,这两项都实现了!)。
最后一步:blog_tag() 函数功能增强了,如何使用 —— 在 header.php 文件中操作:加上一条语句(浅黄色部分)
<meta name="keywords" content="<?php echo $site_key; blog_tag($logid,'keyword'); ?>" />
现在重新打开一篇日志,看看源代码,标签是不是添加到关键字中了?(对照上图!)
操作完毕。
PS:此优化方法仅供参考,优化效果未经实际考量。