- 実践 WordPress ホーム
- デフォルト機能の無効化
WordPress の投稿者別アーカイブページを無効化する方法
WordPress にデフォルトで備わっている投稿者別アーカイブページを無効化する方法を説明します。
ここでは次の 2 つの方法をご紹介します。
- A. プラグインを使う方法
- B. コードを書く方法
A. プラグインを使う方法
投稿者別アーカイブページを無効化する機能を提供するプラグインとして「 Disable Author Archives 」というものがあります。
投稿者別アーカイブページを無効化するという機能だけを提供するシンプルなプラグインです。 プラグインに設定項目はなく、プラグインを有効化すればそのまま機能が有効になります。
インストール:
有効化:
有効化完了:
コードも非常にシンプルで、確認時のバージョン 1.3.5
ではプラグインのメインファイルは 50 行未満でした。
2024 年 10 月時点で 1 万インストール以上となっています。
B. コードを書く方法
プラグインを使わずコードを書く方法です。
カスタムプラグインまたは有効なテーマの functions.php
にコードを追加します。
以下 disable-author-pages
というプラグインを作る想定で話を進めます。
disable-author-pages.php
:
4 箇所あります。 1 から 3 はフロントページ用で 4 は管理画面用です。 管理画面用の変更は利用者の間で共通認識が持てていれば必ずしもしなくてもよいと思います。
1. 投稿者別アーカイブページを無効化( 404 に)する
アクションフック template_redirect
を使います。
disable-author-pages.php
:
// 投稿者別アーカイブページを 404 にする
add_action( 'template_redirect', function () {
if ( isset( $_GET['author'] ) || is_author() ) {
global $wp_query;
$wp_query->set_404();
status_header( 404 );
}
} );
2. 投稿者別アーカイブページをサイトマップから削除する
フィルターフック wp_sitemaps_add_provider
を使います。
disable-author-pages.php
:
// サイトマップから投稿者別アーカイブページを削除する
add_filter( 'wp_sitemaps_add_provider', function ( $provider, $name ) {
if ( $name === 'users' ) {
return false;
}
return $provider;
}, 10, 2 );
3. 投稿詳細ページの投稿者リンクを無効化する
フィルターフック author_link
を使います。
disable-author-pages.php
:
// 投稿詳細ページの投稿者リンクを無効化する
add_filter( 'author_link', function ( $link, $author_id, $author_nicename ) {
return '#';
}, 10, 3 );
4. 管理画面のユーザー一覧ページの「表示」リンクを削除する
フィルターフック user_row_actions
を使います。
disable-author-pages.php
:
// 管理画面のユーザー一覧ページでの「表示」リンクを削除する
add_filter( 'user_row_actions', function ( $actions ) {
if ( isset( $actions['view'] ) ) {
unset( $actions['view'] );
}
return $actions;
} );
確認時のバージョン
- WordPress
6.6.2
- Disable Author Archives プラグイン
1.3.5