WordPress纯代码实现自助申请友链功能

1、在你wp博客主题的目录下新建一个名为blinks.php的文件;

2、复制以下代码至blinks.php中:

// 表单项数据验证
  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' => $link_target,
      'link_description' => $link_description,
      'link_visible' => $link_visible
    )
  );
 
  $result = $wpdb->get_results($sql_link);
 
  wp_die('亲,友情链接提交成功,【等待站长审核中】!<a href="/blinks/">点此返回</a>', '提交成功');
 
}
 
get_header(); 
?>
 
<div id="main">
  <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
  <article class="col-md-10 col-md-offset-2 view clearfix">
    <?php if(function_exists('cmp_breadcrumbs')) cmp_breadcrumbs();?> 
 
    <p class="mt20">欢迎同类站点与本站交换友情链接,要求有权重有排名,收录良好的,内容健康,内容相关更佳。</p>
 
    <p class="mt20"><strong>友链自助申请须知</strong></p>
 
    <p>&#x2714; 申请前请先加上本站链接;</p>
 
    <p>&#x2714; 网站域名必须是一级域名,非一级域名的网站暂不考虑;</p>
 
    <p>&#x2714; 稳定更新,每月至少发布1篇文章,最好是建站半年以上;</p>
 
    <p>&#x2714; 禁止一切产品营销、广告联盟类型的网站,优先通过同类原创、内容相近的网站;</p>
 
    <p>&#x2714; 网站内容一定要健康积极向上,凡内容污秽不堪的、反动反共的、宣扬暴力的、广告挂马的都将不会通过申请。</p>
 
    <p class="mt20"><strong>其他</strong></p>
 
    <p>博主会不定期访问友链,如果遇到网站长时间打不开、网站被降权,内容不符合条件等情况的话,将会撤销该友链!</p>
    <p>如果申请后,长时间未通过审核,有可能是博主太忙未看到,可以通过右侧QQ联系告知我,谢谢~</p>
 
    <p class="mt20"><strong>本站链接信息</strong></p>
 
    <p>名称:何海宝的博客</p>
 
    <p>网址:http://www.hehaibao.com/</p>
 
    <!--表单开始-->
    <form method="post" class="mt20" action="<?php echo $_SERVER["REQUEST_URI"]; ?>">
 
      <div class="form-group">
        <label for="blink_name"><font color="red">*</font> 链接名称:</label>
        <input type="text" size="40" value="" class="form-control" id="blink_name" placeholder="请输入链接名称" name="blink_name" />
      </div>
 
      <div class="form-group">
        <label for="blink_url"><font color="red">*</font> 链接地址:</label>
        <input type="text" size="40" value="" class="form-control" id="blink_url" placeholder="请输入链接地址" name="blink_url" />
      </div>
 
      <div class="form-group">
        <label for="blink_lianxi">联系QQ:</label>
        <input type="text" size="40" value="" class="form-control" id="blink_lianxi" placeholder="请输入联系QQ" name="blink_lianxi" />
      </div>
 
      <div>
        <input type="hidden" value="send" name="blink_form" />
        <button type="submit" class="btn btn-primary">提交申请</button>
        <button type="reset" class="btn btn-default">重填</button>
        (提示:带有<font color="red">*</font>,表示必填项~)
      </div>
    </form>
    <!--表单结束-->
 
  </article>
  <?php endwhile; else: ?>
  <?php endif; ?>
</div>
 
<?php get_footer(); ?>

3、保存,最后进入WordPress管理后台 – 页面 – 添加新页面,标题为自助友链申请(你也可以自己起名),内容填上链接说明等,右侧选择模板,选择“自助申请友链”,发布。

4、自己在需要的页面中增加入口代码,示例如下:

<a href="http://www.iqzx.net/links/">我要申请</a>

说明:其中主要部分就是get_header()前面的所有代码,以及form表单中的所有代码。部分文字描述代码也可以放在后台编辑器中,我这里并没有放哦~ 还有一点需要注意的是:后台不会高亮出哪个是刚提交的链接,你只能筛选或者搜索“待审核”找到它。

如果你主题中的代码跟我的不一样,就把上面这两段主要代码复制出来到你自己的主题中。

至于样式的话,我博客用的是bootstrap 3.x[官网:https://v3.bootcss.com],所以按照其写法不用加其他样式了,如果你不是bootstrap,请自行添加相关的css。

至于如何展示链接的话,可以试试WordPress自带的函数wp_list_bookmarks()

后台定制,添加一键筛选待审核链接按钮

找到wp-admin目录下的link-manager.php,在86行【Tips: 我的是wp 4.9.7版本,如果找不到就搜索“link-add.php”,找到这行】后面添加如下代码:

<a href="/wp-admin/link-manager.php?s=待审核&action=-1&cat_id=0&action2=-1" style="color:red;margin-left:5px;">查看待审核链接</a>

然后保存后,查看后台-链接管理页,点击按钮 效果如下图:

WordPress纯代码实现自助申请友链功能

扩展阅读

如果你想微信及时收到友链申请的提醒,怎么做呢?很简单,可以通过server酱来实现。假如你不知道啥事server酱,没关系,看看他们网站就知道了,传送门

将下列代码复制到wp_die()前面:

// server酱 微信通知我
$key = '您的server酱KEY';  // 请自行替换
$postdata = http_build_query(  
 array(  
      'text' => '博客有人申请友链了',  
      'desp' => '名称:'.$link_name.';链接:'.$link_url.';QQ:'.$link_description
 )  
);  
 
$opts = array('http' =>  
      array(  
      'method' => 'POST',  
      'header' => 'Content-type: application/x-www-form-urlencoded',  
      'content' => $postdata  
      )  
);  
$context = stream_context_create($opts);  
$res = file_get_contents('http://sc.ftqq.com/'.$key.'.send', false, $context);

 

原创文章,作者:陌涛,如若转载,请注明出处:https://imotao.com/651.html

(0)
陌涛的头像陌涛
上一篇 2019年8月22日 下午6:16
下一篇 2019年8月22日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据