wordpress代码完全禁用头部的X-Pingback链接

IT资讯
IT资讯
IT资讯
916
文章
150
评论
2019-11-1508:01:51
评论
1,044 2313字

pingback从功能上来说是好东西,可以让你知道有哪些站外引用了你的文章。但如果你的文章经常引用站内连接的话,就会造成很多Spam,下面提供关闭(禁用)pingback的方法:

 

其实后台有这个功能的设置,设置如下:

wordpress代码完全禁用头部的X-Pingback链接

 

弊端:如果有新版本发布更新后, WordPress 会自动重置 Pingback 参数。

彻底禁用WordPress pingback

方法一,代码来自No Self Pings插件:

function no_self_ping( &$links ) {
$home = get_option( 'home' );
foreach ( $links as $l => $link )
if ( 0 === strpos( $link, $home ) )
unset($links[$l]);
}
add_action( 'pre_ping', 'no_self_ping' );

 

方法二,更简洁的写法:

function deel_setup(){
//阻止站内PingBack
    if( dopt('d_pingback_b') ){
        add_action('pre_ping','deel_noself_ping');
    }
}

 

 

方法三,劫持 Pingback 功能的调用函数,完全屏蔽Pingback,代码来自Pingback Killer插件:

// Kill the rewrite rules
add_filter( 'rewrite_rules_array', 'pmg_pk_filter_rewrites' );
function pmg_pk_filter_rewrites( $rules )
{
foreach( $rules as $rule => $rewrite )
{
if( preg_match( '/trackback/?$$/i', $rule ) )
{
unset( $rules[$rule] );
}
}
return $rules;
}
// Kill bloginfo( 'pingback_url' )
add_filter( 'bloginfo_url', 'pmg_pk_kill_pingback_url', 10, 2 );
function pmg_pk_kill_pingback_url( $output, $show )
{
if( $show == 'pingback_url' )
{
$output = '';
}
return $output;
}
// hijack options for pingbacks
add_filter( 'pre_update_default_ping_status', '__return_false' );
add_filter( 'pre_option_default_ping_status', '__return_zero' );
add_filter( 'pre_update_default_pingback_flag', '__return_false' );
add_filter( 'pre_option_default_pingback_flag', '__return_zero' );
// Disable XMLRPC call
add_action( 'xmlrpc_call', 'pmg_pk_kill_xmlrpc' );
function pmg_pk_kill_xmlrpc( $action )
{
if( 'pingback.ping' === $action )
{
wp_die(
__( 'Pingbacks are not supported' ),
__( 'Not Allowed!' ),
array( 'response' => 403 )
);
}
}
// Flush rewrite rules on activation/deactivation so our trackback
// rules disappear or reappear on deactivation.
register_activation_hook( __FILE__ , 'flush_rewrite_rules' );
register_deactivation_hook( __FILE__, 'flush_rewrite_rules' );

 

 

引申话题:

 

如果之前有引用通知想清理怎么办?

UPDATE wp_posts SET ping_status='closed';

 

 

 

清理某个时间点:

//把2016-03-08以前的文章指定ping_status的值为closed
UPDATE wp_posts SET ping_status = 'closed' WHERE post_date < '2016-03-08'

 

 

WordPress pingback真的会被DDOS吗?

网上关于pingback的讨论,多数是在说此功能会被恶意DDOS,从功能上来说,它确实会被利用,但谁又会这么无聊呢?如果你确实担心,那可以采取下面两步操作来规避掉风险。

 

 

  1. 禁用WordPress pingback(看上面)
  2. 禁用WordPress xmlrpc服务(看下面)

 

 

扔进Functions.php里:

//禁用xmlrpc
add_filter('xmlrpc_enabled', '__return_false');

 

 

补充:禁用xmlrpc服务同时会影响到第三方客户端使用。

 

  • Copyright ©  PC在线云端  版权所有.
  • 转载请务必保留本文链接:http://www.gaofumei.net/web/wordpress_web/8448.html
WordPress 自动为文章添加已使用过的标签 WEB技术

WordPress 自动为文章添加已使用过的标签

看到这个标题,是不是觉得很神奇? 没有了,其实道理很简单: 通过检测wordperss的标签库当中的标签与文章当中的内容进行对比,如果有相同的,则将这些词添加进当前文章的Tag标签与文章页的关键词当中...
广告位出租 云服务器香港节点2折起,高速回流,免备案,海外6大节点共享
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: