存档

2009年7月 的存档

iNove 分类显示友链

2009年7月31日 3 条评论

数据库中分类的存储结构:

可以看出,我们只需要在 terms 表中出去相应数据元组对应的 name 属性就 OK 了。 所以这里需要通过 term_id 和 terms_taxonomy 表联一下,并且将 taxonomy 的值限定为 'link_category'。SQL 如下:

1
2
3
4
5
SELECT T1.name AS name
FROM   $wpdb->terms T1,
       $wpdb->term_taxonomy T2
WHERE  T1.term_id = T2.term_id
AND    T2.taxonomy = 'link_category'

通过以上 SQL 我们可以将所有链接分类的名字找出来,然后做一个循环处理,把链接按照分类查找出来,并置于页面中。

将 links.php 中原代码:

1
2
3
4
5
			<div class="boxcaption"><h3><?php _e('Blogroll', 'inove'); ?></h3></div>
			<div class="box linkcat">
				<ul><?php wp_list_bookmarks('title_li=&categorize=0&orderby=rand'); ?></ul>
				<div class="fixed"></div>
			</div>

替换为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
$linkcats = $wpdb->get_results("SELECT T1.name AS name FROM $wpdb->terms T1, $wpdb->term_taxonomy T2 WHERE T1.term_id = T2.term_id AND T2.taxonomy = 'link_category'");
if($linkcats) : foreach($linkcats as $linkcat) : ?>
	<div class="boxcaption"><h3><?php echo $linkcat->name; ?></h3></div>
	<div class="box linkcat">
		<ul>
			<?php
				$bookmarks = get_bookmarks('orderby=rand&category_name=' . $linkcat->name);
				if ( !empty($bookmarks) ) {
					foreach ($bookmarks as $bookmark) {
						echo '<li><a href="' . $bookmark->link_url . '" title="' . $bookmark->link_description . '">' . $bookmark->link_name . '</a></li>';
					}
				}
			?>
		</ul>
		<div class="fixed"></div>
	</div>
<?php endforeach; endif; ?>

原显示方式:

新显示方式:

分类: wordpress 标签: ,

我们往往会这样……

2009年7月31日 5 条评论

我们往往会这样
很在乎很在乎一个人
因为这个人
忽略和冷淡了那个经常在你身边出现的人

可是你知道
那个经常在你身边出现的人
也是很在乎很在乎你的人吗

麦子 @ BLOG

分类: 心 情, 随 笔 标签:

wp_list_bookmarks 函数详解

2009年7月31日 没有评论

以前发过一篇关于 wp_list_categories 标签的用法,这次继续送上 wp_list_bookmarks 的函数详解。

wp_list_bookmarks 这个函数是为Blogroll服务的,比以前的函数 get_links_list() 和 get_links() 更加强大,它有很多参数,参数和参数之前用"&"分隔。

wp_list_bookmarks 函数的默认参数是:

'orderby' => 'name'
'order' => 'ASC'
'limit' => -1
'category' => ''
'category_name' => ''
'hide_invisible' => 1
'show_updated' => 0
'echo' => 1
'categorize' => 1
'title_li' => __('Bookmarks')
'title_before' => '<h2>'
'title_after' => '</h2>'
'category_orderby' => 'name'
'category_order' => 'ASC'
'class' => 'linkcat'
'category_before' => '<li id="%id">'
'category_after' => '</li>'

下面一一介绍每个参数的用途:

categorize

布尔型,用于设置连接是否按照各自的分类显示:
1 (默认,根据链接的分类显示)
0 (不按照分类,显示全部)

category

字符串型,后面就直接 "=链接分类ID号",那么就显示这个分类下的链接。如果没有指定的话就显示所有的链接。

category_name

字符串型,如果后面 "=某个链接分类的名称" 那么就会在该链接分类前显示分类的名称,如果这里留空的话则会显示所有链接分类的分类名称(即默认的形式)。

category_before

字符串型,位于链接分类之前的文字或代码。默认的设置是:<li id="[category id]">

category_after

字符串型,位于链接分类之后的文字或代码。默认的设置是:</li>

class

字符串型,每一个链接的分类都会有一个 "class" 属性(从上面的代码就能看出),默认是:linkcat

category_orderby

字符串型,链接分类的排序方式,按照名词或者ID。
'name' (默认)
'id'

category_order

字符串型,链接分类的升降序排列方式:
ASC (默认)
DESC

title_li

字符串型,链接标题的头文字或代码,默认是:Bookmarks,并且它控制连接是否按照列表的方式排列。

title_before 和 title_after

顾名思义,它们就是连接标题头前后的文字或代码,默认是 h2 标签

show_private

布尔型,是否显示私有链接。
1 (是)
0 (不是 - 默认)

include

字符串型,输出指定 ID 的 Blogroll 的分类链接,各个 ID 之间用半角的 "," 分开。默认显示所有的 Blogroll 分类。

exclude

字符串型,将指定 ID 的 Blogroll 分类链接从整个链接列表中排除,各个 ID 之间用半角的 "," 分开。默认是什么都不排除。

orderby

字符串型,Blogroll 的排列方式(默认是根据名称排序,除非将这个值留空),即根据我们在 WP 后台链接设置界面下的那些参数来进行排序:
1.'id’
2. 'url’
3. 'name’
4. 'target’
5. 'description’
6. 'owner’
7. 'rating’
8. 'updated’
9. 'rel’ - 按设定的关系排列
10. 'notes’
11. 'rss’
12. 'length’ - 连接名称的长度设定
13. 'rand’ - 随机排列显示

order

字符串型,设置升降序的排列方式
ASC (默认)
DESC

limit

整型,设置输出链接条数的最大值。默认值是"-1",输出全部。

between

字符串型,每个连接、图片和描述之间的文字或代码,默认是 "n" 换行。

show_images

布尔型,是否允许显示 Blogroll 下链接的对应图片。
1 (允许 - 默认)
0 (不允许)

show_description

布尔型,是否允许显示每个链接的描述。
1 (允许)
0 (不允许 - 默认)

show_rating

布尔型,是否允许显示链接的等级。
1 (允许)
0 (不允许 - 默认)

show_updated

布尔型,是否允许显示最近更新后的时间戳。
1 (允许)
0 (不允许 - 默认)

hide_invisible

布尔型,是否显示所有的链接,甚至是被管理员设为不可见的链接,默认允许显示。
1 (允许 - 默认)
0 (不允许)

例如:

随机显示10条链接:

<?php wp_list_bookmarks('orderby=rand&limit=10'); ?>

随机显示分类ID为1的链接:

<?php wp_list_bookmarks('orderby=rand&category=1'); ?>

剩下的大家可以自己发挥了……

分类: 分 享 标签: , ,

【强烈推荐】本站正在使用的超强免费主机……

2009年7月31日 13 条评论

专业赞助美国高速主机,强烈推荐!速度如您所见!稳定性麦子以www.at-blog.com担保!^_^

主机位于美国亚特兰大,由美国vps主机商提供。美国主机与国内的收费空间比较,任何线路的访问速度都是强于国内主机。而且美国主机在稳定性和空间功能上更有保证。

目前该vps采用的是

CPU INTEL 至强E5310 4核X2
内存1G.
php 运行于cgi模式.
安全模式关闭.
url_rewrite(静态化)开启
支持zend
最大上传文件:200M

提供多种空间类型供您选择,详情访问 http://www.1space.org/plans/

申请前请仔细阅读用户协议:http://www.1space.org/thread-4-1-1.html

分类: 分 享 标签: , ,

断电一天……

2009年7月31日 没有评论

早上7点左右开始断电,一直到晚上5点……
一天没上网……手机也没电了……

估计是夏季DAVOS和啤酒节的原因……一天到晚净事儿……
真要是啤酒节估计明天还得断电……可怕!

晚上去看了《大内密探零零狗》,发现大S原来真的挺漂亮……

动漫Maggie穿上性感宫女服抢了镜

分类: 随 笔 标签: ,

主题修改&优化

2009年7月29日 9 条评论

上午对守望的麦子主题进行了修改和优化,这次修改&优化过程没有在本地进行,直接修改、上传主机测试……因为对 iNove 已经非常熟悉了,mg12的这款主题的确经典!从使用 iNove 以来,经常有人跟我索要这款被我修改过的 iNove,其实我的建议是大家去mg12那里直接下载他发布的标准 iNove,然后发挥自己的想象力,去随意设计更改适合自己的、自己喜欢的!就像我们使用WP一样,最开始从经典简洁的界面和功能到后来通过使用插件也好,自己修改也好得到自己喜欢的版本……仅此而已,我们要的也不过就是这些……

这次修改的主要目的是希望它能更快的响应,尽管现在使用 1space 赞助的主机速度已经很快了……

修改&优化的地方有:更改首页友链为随机显示11条,添加友链页面;侧栏增加随机日志展示;侧栏所有广告位显示;授权许可、流量统计……移至页脚显示。

image

image

文章页面中去除了以前的热门日志、随机日志;更改订阅途径和显示方式;增加文章授权许可和转载提示;美化相关日志显示……

image

分类: 随 笔 标签: ,

五种开源协议的比较

2009年7月28日 2 条评论

当Adobe、Microsoft、Sun等一系列巨头开始表现出对“开源”的青睐时,“开源”的时代即将到来!

现今存在的开源协议很多,而经过Open Source Initiative组织通过批准的开源协议目前有58种(http://www.opensource.org/licenses/alphabetical)。我们在常见的开源协议如BSD, GPL, LGPL,MIT等都是OSI批准的协议。如果要开源自己的代码,最好也是选择这些被批准的开源协议。

这里我们来看五种最常用的开源协议及它们的适用范围,供那些准备开源或者使用开源产品的开发人员/厂家参考。

BSD开源协议(original BSD licenseFreeBSD licenseOriginal BSD license

BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。

但”为所欲为”的前提当你发布使用了BSD协议的代码,或则以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件:

  1. 如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。
  2. 如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。
  3. 不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。

BSD 代码鼓励代码共享,但需要尊重代码作者的著作权。BSD由于允许使用者修改和重新发布代码,也允许使用或在BSD代码上开发商业软件发布和销售,因此是对商业集成很友好的协议。而很多的公司企业在选用开源产品的时候都首选BSD协议,因为可以完全控制这些第三方的代码,在必要的时候可以修改或者二次开发。

Apache Licence 2.0(Apache License, Version 2.0Apache License, Version 1.1Apache License, Version 1.0

Apache Licence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。需要满足的条件也和BSD类似:

  1. 需要给代码的用户一份Apache Licence
  2. 如果你修改了代码,需要再被修改的文件中说明。
  3. 在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。
  4. 如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改。

Apache Licence也是对商业应用友好的许可。使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售。

GPL(GNU General Public License

我们很熟悉的Linux就是采用了GPL。GPL协议和BSD, Apache Licence等鼓励代码重用的许可很不一样。GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的代码做为闭源的商业软件发布和销售。这也就是为什么我们能用免费的各种linux,包括商业公司的linux和linux上各种各样的由个人,组织,以及商业软件公司开发的免费软件了。

GPL协议的主要内容是只要在一个软件中使用(”使用”指类库引用,修改后的代码或者衍生代码)GPL 协议的产品,则该软件产品必须也采用GPL协议,既必须也是开源和免费。这就是所谓的”传染性”。GPL协议的产品作为一个单独的产品使用没有任何问题,还可以享受免费的优势。

由于GPL严格要求使用了GPL类库的软件产品必须使用GPL协议,对于使用GPL协议的开源代码,商业软件或者对代码有保密要求的部门就不适合集成/采用作为类库和二次开发的基础。

其它细节如再发布的时候需要伴随GPL协议等和BSD/Apache等类似。

LGPL(GNU Lesser General Public License

LGPL是GPL的一个为主要为类库使用设计的开源协议。和GPL要求任何使用/修改/衍生之GPL类库的的软件必须采用GPL协议不同。LGPL允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。这使得采用LGPL协议的开源代码可以被商业软件作为类库引用并发布和销售。

但是如果修改LGPL协议的代码或者衍生,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必须采用LGPL协议。因此LGPL协议的开源代码很适合作为第三方类库被商业软件引用,但不适合希望以LGPL协议代码为基础,通过修改和衍生的方式做二次开发的商业软件采用。

GPL/LGPL都保障原作者的知识产权,避免有人利用开源代码复制并开发类似的产品

MIT(MIT

MIT是和BSD一样宽范的许可协议,作者只想保留版权,而无任何其他了限制.也就是说,你必须在你的发行版里包含原许可协议的声明,无论你是以二进制发布的还是以源代码发布的.

分类: 我的收藏 标签: ,

如何通过.htaccess修改网站默认首页?

2009年7月27日 4 条评论

Directadmin控制面板通过设置.htaccess文件来实现设定网站默认首页优先顺序,具体操作步骤如下:

1、将您已经建立的.htaccess文件下载到本地,或者DA控制面版,找到您要修改的.htaccess文件,点击“Edit”即可进行编辑;

2、将以下规则添加到.htaccess文件中,按照规则中的说明进行修改,并提交保存;

# 请按自己的需要更改首页文件访问的次序
DirectoryIndex index.html index.htm index.php index.cgi default.html

3、将您修改好的.htaccess文件上传覆盖即可,如果是在线直接修改的,则跳过此步。

注:您还可以将首页文件设置为其他后缀和名称,例如:pagename.html、index.php3、message.pl等等。

分类: 技 术 标签: , ,

WP本身自带的数据表有哪些

2009年7月27日 没有评论

前些日子转载了月关的一篇文章,关于WP数据库的优化,文中涉及到要删除一些冗余的数据,很多朋友问WP本身自带的数据表有哪些呢?

WP之所以风靡全球,就是因为它简单的数据表结构 & 强大的插件库和拓展性……简单的数据表结构让它速度飞快,运行稳健;强大的插件库使用户可以完全自定义想要的风格方式,所以在WP爱好者眼中,WP是万能的……eShop,CMS,SNS...

系统本身自带的数据表文件有:wp_comments,wp_links,wp_options,wp_postmeta,wp_posts,wp_terms,wp_term_relationships,wp_term_taxonomy,wp_usermeta,wp_users 一共10个。

截图:
 

再次提醒一下,优化数据库前一定要先停用一些无用的插件,关联到设置备份的插件请事先后台备份插件的数据表。

分类: wordpress 标签: , ,