三周年

表情
三周年了,时间过的飞快。

wp_tag_cloud

英文原文:Template_Tags/wp_tag_cloud

描述

wordpress 2.3版可用。wp_tag_cloud这个模板标签将显示一列标签,即所谓的标签云图,标签使用的次数决定了它的尺寸。

用法

<?php wp_tag_cloud(''); ?>

例子

默认值

$defaults = array('smallest' => 8, 'largest' => 22,
  'unit' => 'pt', 'number' => 45, 'format' => 'flat', 
  'orderby' => 'name', 'order' => 'ASC','exclude' => , 'include' => );

默认显示:

  • smallest – 使用最少的标签的字号为8
  • largest – 使用最多的标签的字号为22
  • unit – 使用’pt’(点)作为最小和最大字号的单位
  • number – 显示最多45个标签
  • format – 使用平面风格显示标签(标签之间用空格分隔)
  • orderby – 以名称排序
  • order – 升序显示
  • exclude – 不排除任何标签
  • include – 包含任何标签

在“热门标签”下显示云图

<?php if ( function_exists('wp_tag_cloud') ) : ?>
<li>
<h2>Popular Tags</h2>
<ul>
<?php wp_tag_cloud('smallest=8&largest=22'); ?>
</ul>
</li>
<?php endif; ?>

云图减少显示的个数和用使用次数代替名称排序

<?php wp_tag_cloud('smallest=8&largest=22&number=30&orderby=count'); ?>

参数

smallest
(整数) 使用最少的标签的字号 (单位由unit参数给出).
largest
(整数) 使用最多的标签的字号 (单位由unit参数给出).
unit
(字符) 标签字号的单位。 他可以是任何CSS长度单位, 例如: pt, px, em, %; 默认为pt (点).
number
(整数) 云图显示标签的个数。 (使用“0”将显示所有标签。)
format
(字符) 云图显示的格式。

  • ‘flat’ (默认)标签用空格分隔
  • ‘list’ 标签置于一个类名为wp-tag-cloud的无序列表中
  • ‘array’ 标签保存在数值中

orderby
(字符) 标签的排序,有效值为:

  • ‘name’ (默认,名称)
  • ‘count’ 使用次数

order
(字符) 排序次序。有效值 – 必须大写:

  • ‘ASC’ (默认值,升序)
  • ‘DESC’ (降序)

exclude
(字符) 排除用逗号(半角)分隔的一列标签(term_id)。例如, ‘exclude=5,27’ 意味着term_id为5或27的标签将不会显示。默认不排除如何标签。
include
(字符) 包含用逗号(半角)分隔的一列标签。例如,’include=5,27’意味着只有term_id为5或者27的标签将显示。默认包含如何标签。

创建标签档案文件

2.3版本的重要特点是添加了标签功能,wp_tag_cloud标签可以用于显示一个标签存档。这也意味着访问者点击标签云图中的某个标签,他可以得到所有使用了这个标签的文章。根据Template_Hierarchy,如果tag.php模版不存在时,将使用archives.php模版。通过使用tag.php模版,你可以定制你的标签存档的样式,此模版在最上面包含了标签云图,起到了导航的作用。

要把这个弄成一个新的模板的话,需要把这个加入到主题文件中去。(Template_Hierarchy里有关于模版的资源。)需要的步骤如下:

  • 1.将下面的内容保存到tag.php中。
  • 2.将该文件上传到主题文件夹中。
  • 3.当你希望在导航栏有个链接可到达标签存档中时,否则它只在点击某个标签后使用:增加一个使用tag.php的空白页面,并给它起名为标签存档。

第三步的详细说明

WordPress可以设置成不同的页面使用不同的页面模板。在管理面板“写作->页面”的底部(或在边栏,取决于你使用的wordpress版本)有个名为“Page Template(页面模板)”的下拉菜单。在那里,你可以选择使用哪个模板显示这个页面。

<?php /*
Template Name: Tag Archive
*/ ?>
<div>
<?php get_header(); ?>
<h2>Tag Archive</h2>
<?php wp_tag_cloud(''); ?>
	<div class="navigation">
<div class="alignleft"><?php next_posts_link('« Older Entries') ?></div>
<div class="alignright"><?php previous_posts_link('Newer Entries »') ?></div>
	</div>
<?php if (have_posts()) : ?>
		<?php while (have_posts()) : the_post(); ?>
		<h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"><?php the_title(); ?></a></h2>
	<div class="entry">
	<?php the_content('Read the rest of this entry »'); ?>
	</div>

	<?php endwhile; ?>
	<?php endif; ?>
</div>
<?php get_footer(); ?>

请注意,这个模板没有添加任何样式,查看single.php可以得知确定的样式。

二维码手机识别软件

wordpress wap化一文中,我没有直接给出冰古blog的具体wap地址,而是给出了一张图片。
冰古blog的wap地址
这个就是二维码,上面的二维码就记录了冰古blog的wap地址,我们只有在手机上安装相应的软件,就可以将它识别出来了。

我使用的二维码识别软件是QuickMark,下面就看看QuickMark是怎样工作的吧:
启动QuickMark
启动quickmark
将软件中的框框对准屏幕中的二维码图
识别二维码
马上它就能提示二维码包含的信息了
完成识别

就是这么简单,安装文件(用于Nokia S60 3rd版本):QuickMark 3.3

wordpress wap化[FM81581-70]

因为买手机,于是近期都在试用相关的wordpress插件和适用的服务。

WPhone:是现在冰古blog唯一启用的此方面的插件,它的作用就是使我们能用手机管理wordpress。现在唯一有点遗憾的就是还未实现上传功能。
而另一个相关的服务就是FeedM8的rss托管服务,而且它能将托管的rss进行wap处理,使之能用手机方便地浏览。是的FeedM8还能将流量转化为$,但我知道这似乎不太容易。好吧,以下就是我的wap链接:
冰古blog的wap

当然除了上面的两个东东外,我还试用了很多插件,都因为各种原因放弃了:
WordPress Mobile 1.2:据称能写文章,上传文件还有能使手机浏览blog时,自动转化为适应的xhtml手机版(我的观察是这样的)。停用的原因,xhtml手机版在手机上看起来挺乱的。
WP-Wap 2.10:生成一个纯wap的页面,不过我在使用过程中发现按下Previous Page等链接后会出现错误,可能是空间的问题。
WordPress Mobile Edition:这个插件挺久的了,也是当手机访问blog时,自动转换为适应的xhtml手机版。也是同样因为看起来乱而放弃的。

优化wordpress的robots.txt

SitePoint里的一个贴子针对wordpress的SEO优化做了讨论。讨论中cyrillsneer7关于robots.txt的优化给出了一个实例,感觉不错,贴出来跟大家分享下:

User-agent: *
Disallow: /cgi-bin
Disallow: /wp-admin
Disallow: /wp-includes
Disallow: /wp-content/plugins
Disallow: /wp-content/cache
Disallow: /wp-content/themes
Disallow: /trackback
Disallow: /comments
Disallow: /category/*/*
Disallow: */trackback
Disallow: */comments
Disallow: /*?*
Disallow: /*?
Allow: /wp-content/uploads

# Google Image
User-agent: Googlebot-Image
Disallow:
Allow: /*

# Google AdSense
User-agent: Mediapartners-Google*
Disallow:
Allow: /*

# Internet Archiver Wayback Machine
User-agent: ia_archiver
Disallow: /

# digg mirror
User-agent: duggmirror
Disallow: /

# Does anyone care I love Google Apache htaccess
Sitemap: https://bingu.net/sitemap.xml #改为你的sitemap地址

BTW:SitePoint里有很多关于网站方面的文章,他的论坛也很热闹。(3-5-8比例运用在网页设计中就是在SitePoint的邮件列表中看到的)推荐喜欢网站建设的xdjm去看看。 :mrgreen:

WPhone简体中文包

WPhone的确是个很不错的用手机管理blog的插件
我参照现在网上流行的wordpress中文版做了WPhone简体中文包,方便大家操作。
Wphone简体包是这样使用的:
1. 下载WPhone简体包
2. 解压后将wphone-zh_CN.mo和wphone-zh_CN.po放到wphone插件的localization文件夹中;
3. 如果你的wordpress进行了汉化(wp-config.php中define (’WPLANG’, ‘zh_CN’);),这时WPhone就已进行了汉化。

latin1_swedish_ci to utf8_general_ci

从旧主机搬到新主机最烦人的就是乱码问题。这也是个由来已久的问题了。
wordpress 2.2开始,wordpress提供DB_CHARSET和DB_COLLATE这两个参数以便我们更好地解决这个问题。但似乎这些并不够,仍旧会产生这样那样的问题,如Warning: Invalid argument supplied for foreach() in D:\xampp\htdocs\wordpress\wp-includes\classes.php on line 88。最根本的解决应该还是把数据库里的数据由latin1_swedish_ci格式转换成utf8_general_ci格式。
wordpress官方的论坛就像wordpress那样,很有人气。你遇到的问题,很可能里面已经有人讨论过并已经解决了。乱码问题这个很热门的问题,当然也是完美地解决了地。
以下方法涉及数据库修改,请在备份数据库后操作!
解决的方法是这样的:
1. 下载g30rg3_x提供的这个plugin;
2. 确保你的wordpress是2.2.x或2.1.x,因为这个plugin只支持这两个系列的版本;
3. 上传到plugins文件夹并激活;
4. 到’UTF-8 Database Converter’菜单中按照提示进行剩余操作即可。

上面的办法多了不少的限制,如wordpress的版本需是2.2.x或2.1.x,并能保证你的wordpress还能登录!(是的,很可能你的wordpress这时已经不能登录了。)
这时我们可以借用一下g30rg3_x提供的UTF8_DB_Converter_DoIt()函数:

<?php
define('DB_NAME', 'putyourdbnamehere');    // 数据库名
define('DB_USER', 'usernamehere');     // MySQL用户名
define('DB_PASSWORD', 'yourpasswordhere'); // 密码
define('DB_HOST', 'localhost');    // 很大可能你无需修改此项

function UTF8_DB_Converter_DoIt() {
	$tables = array();
	$tables_with_fields = array();

	// Since we cannot use the WordPress Database Abstraction Class (wp-db.php),
	// we have to make an a stand-alone/direct connection to the database.
	$link_id = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD) or die('Error establishing a database connection');
	mysql_select_db(DB_NAME, $link_id);

	// Gathering information about tables and all the text/string fields that can be affected
	// during the conversion to UTF-8.
	$resource = mysql_query("SHOW TABLES", $link_id);
	while ( $result = mysql_fetch_row($resource) )
		$tables[] = $result[0];

	if ( !empty($tables) ) {
		foreach ( (array) $tables as $table ) {
			$resource = mysql_query("EXPLAIN $table", $link_id);
			while ( $result = mysql_fetch_assoc($resource) ) {
				if ( preg_match('/(char)|(text)|(enum)|(set)/', $result['Type']) )
					$tables_with_fields[$table][$result['Field']] = $result['Type'] . " " . ( "YES" == $result['Null'] ? "" : "NOT " ) . "NULL " .  ( !is_null($result['Default']) ? "DEFAULT '". $result['Default'] ."'" : "" );
			}
		}

		// Change all text/string fields of the tables to their corresponding binary text/string representations.
		foreach ( (array) $tables as $table )
			mysql_query("ALTER TABLE $table CONVERT TO CHARACTER SET binary", $link_id);

		// Change database and tables to UTF-8 Character set.
		mysql_query("ALTER DATABASE " . DB_NAME . " CHARACTER SET utf8", $link_id);
		foreach ( (array) $tables as $table )
			mysql_query("ALTER TABLE $table CONVERT TO CHARACTER SET utf8", $link_id);

		// Return all binary text/string fields previously changed to their original representations.
		foreach ( (array) $tables_with_fields as $table => $fields ) {
			foreach ( (array) $fields as $field_type => $field_options ) {
				mysql_query("ALTER TABLE $table MODIFY $field_type $field_options", $link_id);
			}
		}

		// Optimize tables and finally close the mysql link.
		foreach ( (array) $tables as $table )
			mysql_query("OPTIMIZE TABLE $table", $link_id);
		mysql_close($link_id);
	} else {
		die('<strong>There are no tables?</strong>');
	}

	return true;
}
UTF8_DB_Converter_DoIt();
?>

现在你把上面代码保存到一个php文件中,上传至空间并运行,如无意外你的数据已经完成了latin1_swedish_ci到utf8_general_ci转换。

wordpress 2.3.3

数个钟头前,wordpress正式更新到2.3.3。
原因嘛就是XML-RPC出现了漏洞,它可能使某一用户修改别人的文章(当然那个用户是没有权限修改别人的文章的)。当然2.3.3也不只是修补了这个漏洞,它还修正了其他几个小臭虫。
如果你只是关心那个比较大的XML-RPC漏洞,你只需下载这个修正版的xmlrpc.php文件覆盖原文件即可,如果你担心那几个小臭虫,下载最新的wordpress,升级你的wordpress吧。

称此机会把theme换成Design Disease的Dilectio了。很好看的一个theme。 😛