企業やお店にワードプレスで作成したホームページを納品する機会が多く
「いつも行う設定をまとめたい!」と常日頃から思っていたので今回やっとまとめました。
今回はプラグインを使わずにfunctions.phpで設定していきます。
もくじ
不要なメタタグの削除
WordPressにはデフォルトで設定されているタグが多数ありますが、使用しないものについては削除しておきます。
読み込み速度が上がったりするのでSEO的にも重要です。
/* 不要なメタタグ削除 */
//WordPressバージョン情報の削除
remove_action('wp_head', 'wp_generator');
//ショートリンクURLの削除
remove_action('wp_head', 'wp_shortlink_wp_head');
//絵文字用JavaScriptの削除
remove_action('wp_head', 'print_emoji_detection_script', 7);
//絵文字用CSSの削除
remove_action('wp_print_styles', 'print_emoji_styles');
//外部投稿ツール用のタグの削除
remove_action('wp_head', 'rsd_link');
//外部の投稿ツール用のタグの削除
remove_action('wp_head', 'wlwmanifest_link');
//コメント用RSSフィードタグの削除
remove_action('wp_head', 'feed_links_extra', 3);
パーマリンクを自動で変更する
ウェブの知識やPC操作に慣れていない相手へ納品する際は、必ず「パーマリンクを自動で変更」できるように設定します。
納品先にブログやお知らせを更新する際はパーマリンクを日本語→英数字に変更をお願いしても、日本語のままアップされていたり変更される事のが多かったのでその対策です。
出来るだけ過程を減らす事で、ブログやお知らせの更新する難易度を下げています。
そしてなによりパーマリンクに日本語が入っていると、エンコードされURLが長くなったり、リンクが飛べなくなる恐れがあります。
この設定を行えば自動でパーマリンクを英数字に変更してくれるので必ず設定しています。
//パーマリンクが日本語だったら自動的に英数字へ変更
function auto_post_slug( $slug, $post_ID, $post_status, $post_type ) {
if ( preg_match( '/(%[0-9a-f]{2})+/', $slug ) ) {
$slug = $post_ID;
}
return $slug;
}
add_filter( 'wp_unique_post_slug', 'auto_post_slug', 10, 4 );
パーマリンクを手動で変更した場合は、そちらが優先されます。
画像だけのページを検索結果に表示させない
WordPressには「添付ファイルのページ」という、画像だけのページが作成される場合があります。
画像しかないページが多ければ「価値・情報のないページが沢山あるサイト」とみなされSEO的にも良くなく、検索エンジンの順位が下がってしまいます。
なので画像だけのページをインデックスさせない設定を行います。
//画像だけのページにnoindexを設定する
function my_add_noindex_to_attachment_page(){
if (is_attachment()) {
echo '<meta name="robots" content="noindex">';
}
}
add_action('wp_head', 'my_add_noindex_to_attachment_page');
ユーザー名を非表示にしてトップページに飛ばす
ユーザー名はログインIDなので、外部の人にログインIDがばれてしまう事になります。
ただこの設定を行うと、投稿者別のアーカイブページが表示されなくなるので、投稿者別で記事を分けたいと思っている方はご注意ください。
//ユーザー名を非表示にしてトップページに飛ばす
function author_archive_redirect() {
if( is_author() ) {
wp_redirect( home_url());
exit;
}
}
add_action( 'template_redirect', 'author_archive_redirect' );
ログイン画面のロゴとリンク先を変更する
何も設定していない状態だと、上記の画像のようにWordPressのロゴが表示されているかと思います。
このロゴとリンク先とタイトルを変更してオリジナリティを出します。
// ログイン画面のロゴ変更
function login_logo() {
echo '<style type="text/css">.login h1 a {background-image: url('.get_bloginfo('template_directory').'/img/ロゴファイル名.png);width:310px;height:40px;background-size: 100% auto;}</style>';
}
add_action('login_head', 'login_logo');
// ログイン画面のロゴURL
function custom_login_logo_url() {
return get_bloginfo( 'url' );
}
add_filter( 'login_headerurl', 'custom_login_logo_url' );
// ログイン画面のロゴタイトル
function custom_login_logo_url_title() {
return 'トップページを表示';
}
add_filter( 'login_headertitle', 'custom_login_logo_url_title' );
自動で挿入されるpタグを固定ページから削除
固定ページで自動でpタグが挿入されると、予期せぬ隙間が出来たりレイアウトが崩れるので削除します。
投稿ページは納品先のお客様が更新するのでpタグの自動挿入はそのままにしておきます。
add_filter('the_content', 'wpautop_filter', 9);
function wpautop_filter($content) {
global $post;
$remove_filter = false;
$arr_types = array('page');
$post_type = get_post_type( $post->ID );
if (in_array($post_type, $arr_types)){
$remove_filter = true;
}
if ( $remove_filter ) {
remove_filter('the_content', 'wpautop');
remove_filter('the_excerpt', 'wpautop');
}
return $content;
}
WordPressに標準装備されているサイトマップを無効化
サイトマップはプラグインを使用するので無効化しときます。
Wordpressの標準サイトマップを使用する人は無効化する必要はありません。
add_filter( 'wp_sitemaps_enabled', '__return_false' );
また、サイトマップ生成する一部のプラグインでは自動的に無効化してくれるものもあるみたいです。
自分が必要だと思ったものを追加していこうと思ってます。
はやく完成形できたらいいなー。
しゃお