WordPress定时自动删除过期友情链接

WordPress定时自动删除过期友情链接,第1张

概述随着大家网站流量权重的提升,相信很多站长都在寻找属于自己的盈利模式。其实很大一部分个人网站是无法实现盈利的,比如说本站代码狗博客,只能做到收支平

下面是内存溢出 jb51.cc 通过网络收集整理的代码片段。内存溢出小编现在分享给大家,也给大家做个参考。

随着大家网站流量权重的提升,相信很多站长都在寻找属于自己的盈利模式。其实很大一部分个人网站是无法实现盈利的,比如说本站代码狗博客,只能做到收支平衡。为了保障服务器的正常运转,很多站长就会用到出售友情链接的方式来换取一定的利润,一般来说一个权 1 的网站想要保证不亏钱还是很简单的。随着友情链接越来越多,我们可能会忘记哪个友链该过期了,因此,为了服务于懒人,我结合 wordpress 函数写下的这个利用定时任务与 wp_delete_link 函数自动删除过期友情链接的方法。

wp_delete_link 函数

官方描述是:从数据库中删除指定 ID 的链接。

返回值始终为真。

奇怪的是,我测试了下这个函数,wordpress 提示说找不到这个函数,最后我是通过 wp_delete_link 函数的构造内容来实现的,也就是说,参考官方实现办法自己写了个 wp_delete_link 函数。

构造的 wp_delete_link 函数如下:

function wp_delete_link( $link_ID ) {

global $wpdb;

do_action( 'delete_link',$link_ID );

 

wp_delete_object_term_relationships( $link_ID,'link_category' );

 

$wpdb->delete( $wpdb->links,array( 'link_ID' => $link_ID ) );

 

do_action( 'deleted_link',$link_ID );

 

clean_bookmark_cache( $link_ID );

 

return true;

}

建议我们自己写的时候不要使用 wp_delete_link 这个相同的名字,不然可能会出错。很明显,这个函数有两个钩子动作,一个是在删除之前触发,一个是在删除之后触发,我们使用的时候就不需要这两个动作了,删除它。然后在后台新建一个链接,记得填上过期时间。



日期格式不限制,我提供的代码只支持这种格式,要修改格式请修改下面的日期格式化字符串。然后通过如下代码查询所有链接来删除链接。

<?PHP

function cron_dellink(){

//得到所有链接分类,并遍历链接分类

$categorIEs=get_categorIEs(array( 'type' => 'link'));

foreach ( $categorIEs as $categorIE ) {

//根据分类ID遍历链接详情

$bookmarks = get_bookmarks( array(

'orderby' => 'name',

'order' => 'ASC',

'category' => $categorIE->term_ID

));

foreach ( $bookmarks as $bookmark ) {

//判断下有没有过期日期数据

if($bookmark->link_notes){

date_default_timezone_set('PRC');

if(strtotime($bookmark->link_notes)<time()){

//这里的内容可以单独写成上面的函数

global $wpdb;

wp_delete_object_term_relationships( intval($bookmark->link_ID),'link_category' );

$wpdb->delete( $wpdb->links,array( 'link_ID' => intval($bookmark->link_ID) ) );

clean_bookmark_cache( intval($bookmark->link_ID) );

}

}

}

}

}

?>

我将过期日期填在备注里,使用 link_notes 可以获取。不出意外,上面的代码可以删除时间超过现在的链接,下面添加定时任务。

//定时任务

add_filter( 'cron_schedules','salong_add_every_time' );

function salong_add_every_time( $schedules ) {

$schedules['every_time'] = array(

'interval' => 600,

'display' => __( '每隔10分钟','salong' )

);

return $schedules;

}

if ( ! wp_next_scheduled( 'salong_add_every_time' ) ) {

wp_schedule_event( time(),'every_time','salong_add_every_time' );

}

add_action( 'salong_add_every_time','cron_dellink' );

定时任务在前面也讲过,可以参考下 wordpress 使用 WP-Cron 定时任务删除从未登录的用户,效果还不错。别问我为什么过了 20 分钟都没有删除链接,那是因为这 20 分钟内都没人访问你的网站,cron 定时任务是有人访问才会触发的!

以上是内存溢出(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

总结

以上是内存溢出为你收集整理的WordPress定时自动删除过期友情链接全部内容,希望文章能够帮你解决WordPress定时自动删除过期友情链接所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/1007737.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存