
iBois主题截屏
为期半个月的博客建站、论坛搭建、主题修改、各种配置,终于结束了…
我以 Discuz论坛的一个配色配图主题搭配 iNove 代码再加上自己修改终于完成了这个网站定制!作为成品,我还是把这个主题放出来吧~
简介:
本主题修改自iNove, 使用了某Discuz主题的配色方案和一些图, 零插件要求, 支持 Widgets.
改善了iNove 完美支持wp3.0的navmenu. 并加入了jQuery 支持,但只修改了部分iNove的js代码,仍需继续修改。
其他功能基本和iNove差不多。
适用版本:
WordPress 3.0以上版本,支持到3.0.4
图片标题:
修改 title_psd 文件夹中的 PSD 图片, 将图片修改为你的博客标题,导出到images,覆盖logo.gif
本地化
iBois自带了简体中文 (zh_CN) 语言包,通过修改您的 WordPress 根目录下的 wp-config.php 文件来将其激活:
在该文件中查找 "define ('WPLANG', '');" 并将其替换为 "define ('WPLANG', 'zh_CN');" 。
致谢
本主题大部分代码来自 iNove
CSS 风格来自Discuz主题 灰色轨迹
许可
本主题以 GPL 许可证发布,可以对其进行更改后再度发布,但仍必须以 GPL 许可证发布。
主题下载:
最后附上,iBois主题:点此下载
为了避免搜索引擎对博客无关紧要的页面进行抓取,一般都会在那些链接上加上rel=”nofollow”。不过wordpress一些自动生成的链接里都没这块可以设置的。
所以我网上大致得找了下,综合得写了个简单的小插件:直接无脑地在调用the_tags()当前Tags, the_category() 当前目录, the_author_posts_link()作者存档页 这三个自动生成的链接中加入nofollow 属性。代码如下:
<?php
function relNofollow($text) {
$text = preg_replace_callback('|<a (.+?)>|i', 'relNofollowCallback', $text);
return $text;
}
function relNofollowCallback($matches) {
$textorigin = $matches[1];
$text = preg_replace_callback('|rel="(.+?)"|i', 'relNofollowReplaceCallback', $textorigin);
$text = preg_replace_callback("|rel='(.+?)'|i", 'relNofollowReplaceCallback', $text);
if($text == $textorigin) $text .= 'rel="nofollow"';
return "<a $text>";
}
function relNofollowReplaceCallback($matches) {
$text = $matches[1];
$text .= " nofollow";
return 'rel="'.$text.'"';
}
add_filter('the_tags', 'relNofollow');
add_filter('the_category', 'relNofollow');
add_filter('the_author_posts_link', 'relNofollow');
?>
基本就是用正则表达式找出a标签中的rel=然后强行添加nofollow。由于这个改法比较无脑,只要开启后所有当前页的标签,目录,作者都会加上nofollow,对SEO无爱者慎用。
最后附上zip包,可以直接下载:本地下载
对于个人性质的博客,往往会选择在文末添加上一个转载声明。
不过有时候会在博客中转载一些其他的咨询新闻,这时候如果添加这种原创性质的转载声明往往不太合适。
所以做了一下小小的微调,根据文章的Tag来选择是否显示转载声明。
编辑single.php,在文末也就是
<?php the_content(); ?>
之后添加如下代码:
<!– Start Replant statement –>
<?php
$isDisplay = true;
$tagsArr = get_the_tags();
if($tagsArr!=null){
foreach($tagsArr as $tag)
{
if($tag->name === "转载" || $tag->name === "Reprinted" || $tag->name === "Reprint")
{
$isDisplay = false;
break;
}
}
}
if($isDisplay)
{
?>
<p style=”padding-top:20px;”><address>转载本文请注明,转自:<strong>
<a href="<?php echo home_url ( '/' ); ?>" rel="nofollow"><?php bloginfo('name');?></a></strong><br />
本文地址: <?php the_permalink(); ?></address></p>
<?php
}
?>
<!– End Replant statement –>
基本思路就是文章存在”转载”或者”Reprinted”的Tag时,不显示转载声明,以表示该文章为他站转载。而默认情况下则为显示转载声明。
SimpleTags的autolink用下来感觉很不错,不过刚发布了几个中文Tags后发现中文的Tag竟然不支持自动添加Link。
估计是因为作者是老外,所以没考虑过中文方面的问题,网上搜了下也找到了解决方案。
和之前《解决Simple Tags与Pre标签内容冲突问题》一文一样,本次修改也是针对于SimpleTags的inc/client.php(Simple Tags版本1.8)中的函数autoLinkTags的。
找到autoLinkTags下的foreach函数,并找到一个$match变量的定义
$match = "/\b" . preg_quote($term_name, "/") . "\b/".$case;
将该变量的定义改为
//add this to support Chinese Tags
$term_name_quote=preg_quote($term_name, "/");
if (preg_match("/^([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){1}/",$term_name_quote) == true
|| preg_match("/([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){1}$/",$term_name_quote) == true
|| preg_match("/([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){2,}/",$term_name_quote) == true)
{
$match = "/" . $term_name_quote . "/"; //if it is a Chinese tag
}else{
$match = "/\b" . $term_name_quote . "\b/".$case;
}
其实也就是判断tag是否为中文,如果是中文则改变下输出形式。
改完后保存即达到了让autolink支持中文的效果了~
作为一个技术型的Blog,经常需要在网页里插入代码。Wordpress中对于这方面还是很友好的,选用了一款国人基于SyntaxHighlighter修改而来的Syntax Highlighter Optimized, 效果的确是不错,但是由于使用了Simple Tags插件的auto link功能,麻烦的问题接踵而至:
由于SyntaxHighlighter插件需要将代码片放于<pre></pre>标签之中,而Simple Tags的auto link又会在网页渲染时将tag的link(<a>标签以及相关)自动加在关键词的周围,导致这些被SimpleTags添加进去的 link也被直接显示在了网页之中(pre标签的效果)。
我在网上搜索了下发现有相关的是基于修改Highlighter插件的,不过怎么看都觉得问题是出在SimpleTags上,因此我还是研究了SimpleTags的生成Content部分的代码,并在这个基础上进行修正冲突。
首先是找到inc/client.php(Simple Tags版本1.8)中的函数autoLinkTags,该函数为最终替换content内容的函数,在foreach进行tag内容替换前加入以下内容:
//replace <pre> to {rp_pre_N} === begin =====
preg_match_all('/<pre[^>]*>([\s\S]*?)<\/pre>/i', $content, $result);
$matchPre = $result[0];
if(!empty($matchPre)) {
$i = 0;
foreach($matchPre as $r) {
$content = str_replace($r, "{rp_pre_".$i++."}", $content);
}
}
//replace <pre> to {rp_pre_N} ==== end =====
阅读全文…
选用了比较简洁外加比较著名的NeoEase系列主题之一iNove,不过这个版本似乎算比较老的,所以我做了几个主要的改动,草草记录之~
让iNove主题支持WP3菜单栏
首先是添加WP3菜单栏支持和设置选项。
在function.php中增加
if (function_exists ( 'add_theme_support' )){
add_theme_support( 'nav-menus' );
register_nav_menu ( 'bois_navmenu', 'Navigation Menu' );
修改主题可在WP3的菜单中注册,该函数可提供多个名称即多个WP3菜单的注册。
并在之后设置Form中找到设置面板中选择菜单模式的table (可以搜索Menubar),加入一个Label:
<label>
<input name="menu_type" type="radio" value="wpmenus" <?php if($options['menu_type'] == 'wpmenus') echo "checked='checked'"; ?> />
<?php _e('Show WordPress 3.0 menu as menu.', 'inove'); ?>
</label>
阅读全文…
近期评论