存档

文章标签 ‘代码’

WordPress插件:给链接XFN关系增加一个nofollow标签

2009年8月12日 Slyar 3 条评论

文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。

鉴于最近WordPress频繁升级,Slyar已无法忍受每次重新修改代码的机械劳动,故不得不再次编写插件以求一劳永逸。考虑到其中一个功能可能是很多人需要的,故单独列出来发布,详情见下:

插件名称: Add-nofollow-to-XFN

插件功能: 在WordPress后台的"链接" - "添加新链接"中的"链接关系(XFN)"中增加一个"nofollow"选项,安装插件后效果如下:

Add-nofollow-to-XFN

插件下载地址: Add-nofollow-to-XFN

插件安装方法: 下载插件压缩包,解压后将 "Add-nofollow-to-XFN.php" 上传到 "wp-content/plugins/" 下,在后台的"插件"里启用 "Add-nofollow-to-XFN" 即可。

关于"nofollow": 我截取了Google网站管理员帮助中的一段话:

"Nofollow"向网站管理员提供了一种方式,即告诉搜索引擎"不要追踪此网页上的链接"或"不要追踪此特定链接"。

在 nofollow 被用于具体链接前,要阻止漫游器追踪某网页上的具体链接需要大量的工作(例如,将该链接重定向至 robots.txt 中拦截的网址)。 因此,我们创建了 rel 属性的 nofollow 属性值。这使网站管理员能进行更精确的控制:无需告诉搜索引擎和漫游器不要追踪网页上的所有链接,只需很方便地指示漫游器不要抓取某特定链接即可。 例如:

<a href="signin.php" rel="nofollow">sign in</a>

Google 不追踪此类链接。 也就是说,Google 不会传送这些链接中的 PageRank 或定位文字。 从本质上说,使用 nofollow 会使我们从整个网络中放弃这些目标链接。 不过,如果其他网站没有采用 nofollow 链接到这些目标网页,或目标网页的网址是通过 Sitemap 提交给 Google 的,则这些网页仍可能会出现在我们的索引中。 另外,值得注意的是,其他搜索引擎对 nofollow 的处理方式可能略有不同。

使用建议: 因此在使用"nofollow"标签后,您所添加的链接里会自动附上 rel="nofollow" ,当然,我不建议您对您的友情链接使用这个标签,因为这会导致不公平产生,您的信誉也会因此受到影响。所以,在使用此标签前,请您三思。

分类: WP相关 标签: ,

一条语句让WordPress所有友情链接在新窗口打开

2009年6月28日 Slyar 7 条评论

文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。

这个问题是Jutoy提的,发觉具有普遍性,于是决定拿出来写一下。

如果你现在已经有很多友情链接而之前都忘记在后台设置"新窗口打开"的话,可以直接通过修改数据库让所有的友情链接一次性加上"_blank"标签。

首先进入phpmyadmin,当然,如果你有其他的数据库管理工具也可以。

进入后点击"SQL",也就是可以输入SQL语句的地方。

修改对应的数据库名称以及数据表前缀(这个看一下就知道了),运行以下语句,提示成功则证明修改已经生效。

UPDATE `数据库名称`.`数据表前缀_links` SET `link_target` = '_blank';
分类: WP相关 标签: , ,

解决WordPress自动升级超时Operation timed out after 30

2009年6月27日 Slyar 5 条评论

文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。

在自动升级WordPress核心以及WordPress插件的时候,往往会因为网络原因导致下载核心或插件的时候超时,从而导致升级失败,此时WordPress会给出如下提示:

Operation timed out after 30 seconds with ......

从提示中我们可以看到WordPress默认给出的超时时限是30秒,我们可以将这个值修改的大一些,使得即使在网速不佳的情况下也可以完成下载。

打开 wp-admin\includes\file.php

查找如下语句

$response = wp_remote_get($url, array('timeout' => 30));

将其中的30改大,如改成300:

$response = wp_remote_get($url, array('timeout' => 300));

保存即可。

分类: WP相关 标签: ,

让Wordpress评论中链接在新窗口打开

2009年6月27日 Slyar 37 条评论

文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。

2009.6.27 更新至WordPress 2.8版本支持

呵呵,看到Wordpress中文论坛有人问这个问题,正好拿来做话题写~~

问题就是如何让WP评论中的链接默认使用新窗口打开。

找到 wp-includes\formatting.php

搜索 function _make_url_clickable_cb

会看到以下代码

1
2
3
4
5
6
7
8
9
10
11
12
13
function _make_url_clickable_cb($matches) {
	$ret = '';
	$url = $matches[2];
	$url = clean_url($url);
	if ( empty($url) )
		return $matches[0];
	// removed trailing [.,;:] from URL
	if ( in_array(substr($url, -1), array('.', ',', ';', ':')) === true ) {
		$ret = substr($url, -1);
		$url = substr($url, 0, strlen($url)-1);
	}
	return $matches[1] . "<a href=\"$url\" rel=\"nofollow\">$url</a>" . $ret;
}

那么问题就解决了,只要把

1
<a href=\"$url\" rel=\"nofollow\">$url</a>

改为

1
<a href=\"$url\" rel=\"nofollow\" target=\"_blank\">$url</a>

就可以使评论中的链接在新窗口打开了。

分类: WP相关 标签: , ,

让"量子恒道统计"的代码符合W3C

2009年5月31日 Slyar 2 条评论

文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。

今天上雅虎统计,发现雅虎发布雅虎统计向量子恒道迁移通告。得了,迁移就迁移吧,不过迁移之后发现代码依旧不符合W3C的XHTML标准...囧,一点也不专业...

得了,按照错误提示挨个修改吧...我已经改好了(加了个alt,加了个双引号,加了个nofollow),如果你需要直接复制我的代码然后把参数改成你的就OK...

1
<script type="text/javascript" src="http://js.tongji.linezing.com/674708/tongji.js"></script><noscript><a href="http://www.linezing.com" rel="nofollow"><img alt="" src="http://img.tongji.linezing.com/674708/tongji.php"/></a></noscript>

如果上面那个还是通不过,提示<a>不能在这呀,缺少<p><div>之类的东西,请使用下面这个(补了一个<p></p>),如果还是不行...给我留言好了...

1
<script type="text/javascript" src="http://js.tongji.linezing.com/674708/tongji.js"></script><noscript><p><a href="http://www.linezing.com" rel="nofollow"><img alt="" src="http://img.tongji.linezing.com/674708/tongji.php"/></a></p></noscript>
分类: 网络相关 标签: , , ,

简单的PHP上传代码

2009年5月14日 Slyar 3 条评论

文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。

昨天因为校会要做一个上传页面,于是操起PHP简简单单写了一个上传代码,先备忘一下,有时间继续完善。

首先是上传的提交页面upfile.html

1
2
3
4
5
6
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<form action="upload.php" enctype="multipart/form-data" method="POST">
<input type="hidden" name="max_file_size" value="33554432"/>
<input type="file" name="file"/>
<input type="submit" name="submit" value="上传" />
</form>

1. PHP支持HTML以POST的方法传输文件,但是form中必须声明enctype的属性="multipart/form-data",否则整个form表单将不起任何作用。

2. form表单中必须含有一个name为MAX_FILE_SIZE的隐藏域,这个隐藏域用来指定用户最大能上传的文件大小,必须声明在所有其他input标签之前。如果文件超大的话,浏览器直接就可以给出提示,不必浪费上传的时间。

下面就是上传处理文件upload.php

阅读全文...

分类: 网络生活 标签: ,

正负数十进制转二进制 位运算 C语言版

2008年11月1日 Slyar 3 条评论

文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。

今天在论坛上看到一个负十进制数转二进制的问题,于是小研究了一下,顺便学习位运算。。。

我们知道负数的二进制是由其正数的二进制取反(求反码)再加一(求补码)得到的,例如:

十进制数528的二进制码为:0000001000010000

将其取反(求反码)后的结果:1111110111101111

将反码加一(求补码)后结果:1111110111110000

所以,-528的二进制码为1111110111110000

小说一下概念,然后看一个位运算符,按位与(&) :0&0=0 , 0&1=0 , 1&0=0 , 1&1=1

我们知道,奇数的二进制最后一位全部为1而偶数的二进制最后一位全部为0,那么用按位与运算符我们可以很方便地知道一个数是奇数还是偶数,只要让数字 &1 就可以了,因为 奇数&1=1 ,而 偶数&1=0

现在看一段代码,作用是将十进制数转换为二进制数。

#include <stdio.h>

int main()
{
int x,i;
scanf("%d",&x);
for(i=31;i>=0;i--) printf("%d",x>>i&1);
system("pause");
}

重点就在 x>>i&1 啦,每次按照能否被二整除来确定0或者1,然后一位一位的移动,这样处理负数也是可以的,很爽~详细解释太麻烦,自己思考吧,嘎嘎~

分类: 编程相关 标签: ,

碾转相除法求最大公约数不用比较两数大小

2008年10月30日 Slyar 4 条评论

文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。

辗转相除,又名欧几里德算法(Euclidean algorithm),是求两个正整数之最大公因子的算法。它是已知最古老的算法, 其可追溯至前300年。它首次出现于欧几里德的《几何原本》中,而在中国则可以追溯至东汉出现的《九章算术》。

以前学碾转相除的时候也没怎么考虑,看到书上说要先比较两个数的大小再碾转相除我就习惯性地先比较大小了,可是今天发现碾转相除法是不用比较两个数的大小的。。。

设我们有两个数m、n

1、用m除以n,得余数r

2、使m=n ,n=r

3、若r=0,则m就是最大公约数;若r不等于0,返回第1步

我们可以看到,如果m>n,那么没说的;如果m<n,在第一次m除以n后,余数恰好为m,这样一交换,最后还会变成m>n的情况。

C语言实现代码为:

#include <stdio.h>

int main()
{
int m, n, r = 1;
scanf("%d%d", &m, &n);
while (r != 0)
{
r = m % n;
m = n;
n = r;
}
printf("%d", m);
return 0;
}

还有一个利用条件运算符写的求最大公约数程序代码

#include<stdio.h>

int main()
{
int m, n;
scanf("%d%d", &m, &n);
while(m > n ? (m = m % n) : (n = n % m));
printf("%d", m + n);
return 0;
}

分类: 编程相关 标签: ,
bnuep:0801010047