平时看到很多网站都有自助申请友情链接的功能,很羡慕,不仅可以减少交换链接的麻烦,还可以增加与读者之间的沟通。此代码不仅有提供用户申请友情链接的作用,还带有favicon.ico 显示的友情链接自定义页面。

其实代码也很简单,大家按照步骤来:

1、在你wp博客主题的目录下新建一个名为link.php的文件,然后将主题中自带的page.php文件中的所有代码复制到link.php中;

2、在link.php文件的开始处,即的get_header(); 前面加上以下代码:

/**
* Template Name: 友链link
* 作者:BluFate
* 博客:http://www.lovesnow.com.cn/
* 提示:友情链接,需在后台审核
*/

if( isset($_POST['blink_form']) && $_POST['blink_form'] == 'send')
{
global $wpdb;

// 表单变量初始化
$link_name = isset( $_POST['blink_name'] ) ? trim(htmlspecialchars($_POST['blink_name'], ENT_QUOTES)) : '';
$link_url =  isset( $_POST['blink_url'] ) ? trim(htmlspecialchars($_POST['blink_url'], ENT_QUOTES)) : '';
$link_description =  isset( $_POST['blink_lianxi'] ) ? trim(htmlspecialchars($_POST['blink_lianxi'], ENT_QUOTES)) : '';//联系方式
$link_target =  "_blank";
$link_visible = "N";//表示链接默认不可见

// 表单项数据验证
if ( empty($link_name) || mb_strlen($link_name) > 20 )
{
wp_die('连接名称必须填写,且长度不得超过30字');
}

if ( empty($link_url) || strlen($link_url) > 60 || !preg_match("/^(https?:\/\/)?(((www\.)?[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)?\.([a-zA-Z]+))|(([0-1]?[0-9]?[0-9]|2[0-5][0-5])\.([0-1]?[0-9]?[0-9]|2[0-5][0-5])\.([0-1]?[0-9]?[0-9]|2[0-5][0-5])\.([0-1]?[0-9]?[0-9]|2[0-5][0-5]))(\:\d{0,4})?)(\/[\w- .\/?%&=]*)?$/i", $link_url))
//验证url
{
wp_die('链接地址必须填写');
}

$sql_link = $wpdb->insert($wpdb->links, array('link_name' =>$link_name.'---【待审核】','link_url'=>$link_url,'link_target'=& gt;$link_target,'link_description'=>$link_description,'link_visible'=>$link_visible));

$result = mysql_query($sql_link);
// 通过数组形式将链接插入数据库
wp_die('亲,友情链接提交成功,【等待站长审核中。。。】!您可以返回首页~', '提交成功');
}

3、在<?php the_content(); ?> 下面添加以下代码,此代码包含友情链接提交表单和友情链接输出两部分:

   <!--表单开始-->
<form method="post" action="<?php echo $_SERVER["REQUEST_URI"]; ?>">
<div style="text-align: left; padding-top: 10px;">
<label>链接名称:*</label>
</div>
<div>
<input type="text" size="40" value="" name="blink_name" />
</div>

<div style="text-align: left; padding-top: 10px;">
<label>链接地址:*</label>
</div>
<div>
<input type="text" size="40" value="" name="blink_url" />
</div>

<div style="text-align: left; padding-top: 10px;">
<label>联系QQ:</label>
</div>
<div>
<input type="text" size="40" value="" name="blink_lianxi" />
</div>
<?php if (get_option('swt_adc') == 'Hide') { ?>
<?php { echo ''; } ?>
<?php } else { include(TEMPLATEPATH . '/includes/ad_c.php'); } ?>
<div></div>
<br clear="all">
<div style="text-align: center; color:#FF0000;">
<input type="hidden" value="send" name="blink_form" />
<input type="submit" value="提交" />
<input type="reset" value="重填" />
</div>
</form><!--表单结束-->
<!--输出友情链接开始-->
<div>
<h3>友情链接</h3>
<ul>
<?php
$default_ico = get_template_directory_uri().'/images/links_default.gif';//默认 ico 图片位置
$bookmarks = get_bookmarks('title_li=&orderby=rand'); //全部链接随机输出
//如果你要输出某个链接分类的链接,更改一下get_bookmarks参数即可
//如要输出链接分类ID为5的链接 title_li=&categorize=0&category=5&orderby=rand
if ( !empty($bookmarks) ) {
foreach ($bookmarks as $bookmark) {
echo '<li><img src="', $bookmark->link_url , '/favicon.ico" onerror="javascript:this.src=\'' , $default_ico , '\'" /><a href="' , $bookmark->link_url , '" title="' , $bookmark->link_description , '" target="_blank" >' , $bookmark->link_name , '</a></li>';
}
}
?>
</ul>
</div>
<!--输出友情链接结束-->

4. 为了好看点,你可以给友情链接输出的page-links 这个class定义一下样式,下面是BlueFate博客主题所用样式,可以参考一下,将此代码加入到你的style.css样式文件最后即可:

/*友情链接页面*/
.page-links{overflow:hidden;margin:0 0 24px;padding:0;}
.page-links h3{border-bottom:1px solid #bfbebe;text-align:left;margin:20px 0 0 0; font-size:18px;}
.page-links ul{margin:0;padding:5px 0 0 0;}
.page-links ul li{float:left;width:150px;line-height:16px;height:16px;margin:5px 5px 0;padding:0;list-style-type:none;}
.page-links ul li:hover{background:#f2f2f2;}
.page-links ul li img{width:16px;height:16px;margin:0 5px -2px 0;padding:0;border:none;}

5.最后进入WordPress管理后台– 页面 – 添加新页面,标题为自助友情链接(可以自己起名),内容填上链接说明等,右侧选择模板,选择“友链blink”即可

原创文章,转载请注明: 转载自许诺's Blog

本文链接地址: http://www.lovesnow.com.cn/wordpress-link.html