0x01 附件页面
WordPress 的图片附件页面是个什么鬼?WordPress 默认自带了图片附件页面,在媒体库中点击一个图片附件,详细信息中的最下面就可以看到。点开就是这个图片的附件页面,一般还真注意不到这个地方。

当你点开附件页面就如下图,只显示一张图片其他啥信息也没有;

0x02 有啥用途
那这个图片附件页面有什么用处呢?答案是啥用处也没有,设计的初衷可能方便查看图片附件。但是如果被搜索引擎的蜘蛛爬到了反而会影响体验。虽然我在 robots 中禁止爬取附件,DevOps.Chat 还是被 Google 蜘蛛爬了几十个这样的附件页面,点进去就一张图片严重影响了用户体验。

0x03 改造页面
既然无法阻止搜索引擎的蜘蛛爬取,那改造改造下当你点击附件页面的时候就进行跳转。将以下代码添加到主题的 functions.php 中在去媒体中点击附件页面看看会有什么。如果附件存在和文章有关联关系则跳转到文章页面,如果不存在则跳转到首页。
//禁用 WordPress 附件页面
function wp_redirect_attachment_to_post() {
// 如果是附件页面
if ( is_attachment() ) {
global $post;
if( empty( $post ) ) $post = get_queried_object();
// 如果附件有所在的页面
if ($post->post_parent) {
$link = get_permalink( $post->post_parent );
wp_redirect( $link, '301' );
exit();
}
// 如果没有页面
else {
wp_redirect( home_url(), '301' );
exit();
}
}
}
add_action( 'template_redirect', 'wp_redirect_attachment_to_post' );