我想禁用feed和类似的东西(rpc、pingbacks、wlwmanifest、prev/next)。原因是这个网站不是博客,所以这些都没有用。
我在插件中编写了以下内容:
remove_action(\'wp_head\', \'rsd_link\');
remove_action(\'wp_head\', \'feed_links\', 2);
remove_action(\'wp_head\', \'wlwmanifest_link\');
// and so on...
实际上,链接不再位于标题中。但如果我请求任何相应的url,它们仍然有效。我只是删除了链接,没有删除功能。
我在wpengineer上找到了一个提示,并在我的插件中添加了以下内容:
function fb_disable_feed() {
wp_die( __(\'No feed available!\') );
}
add_action(\'do_feed\', \'fb_disable_feed\', 1);
add_action(\'do_feed_rdf\', \'fb_disable_feed\', 1);
add_action(\'do_feed_rss\', \'fb_disable_feed\', 1);
add_action(\'do_feed_rss2\', \'fb_disable_feed\', 1);
add_action(\'do_feed_atom\', \'fb_disable_feed\', 1);
似乎不起作用(尽管我看到过许多对此类代码的引用)。
你知道我如何删除所有这些提要、rpc等等吗?或者至少让他们返回“这里什么都没有”之类的东西?
备注:
当然,我不想编辑核心wp文件!
我认为管理区使用feed。我很好,我只想把它们从前端去掉。
最合适的回答,由SO网友:jgraup 整理而成
在…上template_redirect
这个template-loader.php
踢进来。
add_action( \'template_redirect\', function() {
if ( in_array( true,
array (
is_feed(),
is_trackback(),
is_embed(),
) ) ) {
wp_die( __( "NO SOUP FOR YOU!" ) );
}
} );
如果
do_feed()
然后可以调用一些操作。
add_action( \'init\', function() {
$feeds = array (
\'do_feed\',
\'do_feed_rdf\',
\'do_feed_rss\',
\'do_feed_rss2\',
\'do_feed_atom\',
);
foreach ( $feeds as $feed ) {
remove_action( $feed, $feed );
}
} );
添加了上述feed操作和许多其他操作
default-filters.php
禁用xmlrpc
:
add_filter( \'xmlrpc_enabled\', \'__return_false\' );
// Hide xmlrpc.php in HTTP response headers
add_filter( \'wp_headers\', function( $headers ) {
unset( $headers[ \'X-Pingback\' ] );
return $headers;
} );
要删除链接,请执行以下操作:
remove_action(\'wp_head\', \'wlwmanifest_link\');
remove_action(\'wp_head\', \'rsd_link\');
阻止访问
wlwmanifest
和
xmlrpc
将这些行添加到
.htaccess
:
RedirectMatch 403 ^.*/xmlrpc.php$
RedirectMatch 403 ^.*/wp-includes/wlwmanifest.xml$
有关要删除的更多链接,请参见
Remove JSON API links in header html 其中包括WP-API和;oembed链接和
Disable emojicons introduced with WP 4.2.