WordPress – タグページを非表示に設定する

WordPressではタグ機能がありますが、この機能を全く使わない人にとっては邪魔な機能です。そこでこの機能を非表示にする方法をご紹介したいと思います。タグページの非表示設定は次のようにまとめました。

管理画面の投稿からタグページを非表示に設定する

では投稿からタグを非表示にする方法について解説していきます。タグを非表示に設定する場合はfunctions.phpから制御することが可能です。

functions.phpを開きたら下記のコードを使うことでタグページを非表示に設定することができます。

function remove_menus(){
	// 投稿 タグメニュー非表示
	remove_submenu_page('edit.php', 'edit-tags.php?taxonomy=post_tag');
}
add_action('admin_menu', 'remove_menus');

タグ一覧ページのリダイレクト設定

あくまでも上記だけの設定だと非表示なのでURLから.../wp-admin/edit-tags.php?taxonomy=post_tagとアクセスするとタグページにアクセスできてしまいます。また.../wp-admin/edit-tags.phpからもタグ追加/一覧にアクセスできてしまします。

このタグ一覧ページにもURLからでアクセスできないようリダイレクト設定を行います。下記のコードもfunctions.phpに追加してください。

add_action('admin_init', function(){
	$path = isset($_SERVER['HTTPS']) ? 'https://' : 'http://' .$_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
	if(
		$path == admin_url('edit-tags.php') ||
		$path == admin_url('edit-tags.php?taxonomy=post_tag')
	){
		wp_redirect(sanitize_url(admin_url('edit-tags.php?taxonomy=category')));
		exit();
	}
});

上記のコードを追加することで管理画面上のタグ一覧ページにアクセスしてもカテゴリー一覧へリダイレクトされるようになります。

管理画面の投稿ページからタグ追加機能を削除

まだ、投稿画面では画像のようにタグの追加ができる状態なのでこちらの機能も削除します。こちらもfunctions.phpから修正を加えます。

下記のコードを埋め込むことで投稿画面でのタグ追加機能が削除されるようになります。

add_action('init', 'admin_post_format');
function admin_post_format(){
	unregister_taxonomy_for_object_type('post_tag', 'post');
}

タグアーカイブページのリダイレクト設定

上記の設定を終えてもタグアーカイブページは残ている状態です。.../tag/sample/とリクエストするとそのタグアーカイブページが表示されるのでこちらもリダイレクト設定をして404で返すように設定をします。下記のコードをfunctions.phpに埋め込むことでリダイレクトされるようになります。

function redirect_url(){
	if(is_tag()){
		global $wp_query;
		$wp_query->set_404();
		status_header( 404 );
	}
}
add_action('template_redirect', 'redirect_url');

もしタグアーカイブ以外の投稿者アーカイブや年月日アーカイブもリダイレクト設定したいのであれば下記のコードでリダイレクトされるようになります。

function redirect_url(){
	if(is_search() || is_author() || is_date() || is_day() || is_tag()){
		global $wp_query;
		$wp_query->set_404();
		status_header( 404 );
	}
}
add_action('template_redirect', 'redirect_url');