パーマリンク設定

パーマリンク設定とは

パーマリンク設定とは、「投稿ごとの URL をどの様に付けるか?」を設定することです。
設定 - パーマリンク で設定します。ここのパーマリンク構造で多くの人がカスタム構造を選択しているんじゃないかと思います。

%post_id% = 投稿の ID を使う
%category% = カテゴリーの slug を使う
%postname% = 投稿の slug を使う

投稿の ID は投稿ごとに自動で振られる番号(数字)です。
例えば 2番目の投稿の ID が 8、3番目の投稿の ID が 21 など、連番ではなく変更も出来ません。(データベースをいじれば変更可能)

カテゴリー/投稿の slug は自由に設定、変更可能です。URL に日本語を含めたくない場合は slug を英数字にして下さい。

おすすめ(xxx.com/123/)

/%post_id%/ または /%post_id% (注)

  • メリット
    • URL が短い
    • カテゴリーを変更しても URL は変わらない
  • デメリット
    • SEO的によくない

URL は意味のあるものにした方がいいらしく、ドメイン以下が全く意味のない数字(post_id)だけの URL は良くないということで、/archives/%post_id% や /blog/%post_id%、/posts/%post_id% などにする方もいる様です。

SEO的に大きなマイナスになるとも思えないので、気にしなければこの設定が最強です。

Best(xxx.com/cat/123/)

/%category%/%post_id%/ または /%category%/%post_id% (注)

  • メリット
    • URL にカテゴリーを使うことで少し意味を持たせる事ができる
  • デメリット
    • カテゴリーを変更すると URL も変わる

More Better(xxx.com/cat/c123/)

/%category%/%postname%/ または /%category%/%postname% (注)
post_id を使った postname(slug)を自動でセット

  • メリット
    • URL にカテゴリーを使うことで少し意味を持たせる事ができる
    • 更新時に postname(slug)を手動で自由に変更可能
  • デメリット
    • カテゴリーを変更すると URL も変わる
    • functions.php に追記が必要

post_id を使った slug を自動でセットするコードです。(functions.php に追記)

if (!function_exists('slug_auto_setting')) :
function slug_auto_setting($slug, $post_ID, $post_status, $post_type)
{
  // 記事IDからを記事情報を取得
  $post = get_post($post_ID);
  // 初回の投稿保存時にのみ、投稿のslug = 接頭辞 + 投稿のIDに設定
  if ($post_type == 'post' && $post->post_date_gmt == '0000-00-00 00:00:00') {
    $prefix = 'p'; // 接頭辞
    $slug = $prefix . $post_ID;
  }
  return $slug;
}
add_filter('wp_unique_post_slug', 'slug_auto_setting', 10, 4);
endif;

/%category%/%postname%/ の場合 slug には数字以外を含める必要があります。
必ず、8行目の $prefix = '英文字'; で好きな接頭辞を付けて下さい。
英文字以外にも -(ハイフン)や _(アンダーバー)が使えます。

また、更新時に手動で slug を変更する場合も数字のみにしない様に気を付けて下さい。(a123 や 12a3, 123a などは OK)

上記コードを functions.php に追記した後、パーマリンクを /%postname% や /archives/%postname% にするのも OK です。

Better(xxx.com/cat/三毛猫/)

/%category%/%postname%/ または /%category%/%postname% (注)
postname(slug)はデフォルトのまま(手動で変更はしない)

  • メリット
    • URL に意味を持たせる事ができる
  • デメリット
    • URL に日本語が含まれる
    • カテゴリー、記事タイトルを変更すると URL も変わる

postname(slug)はデフォルトで投稿のタイトルがセットされ、タイトルが日本語の場合 slug も日本語になり、URL にも日本語が含まれる事になります。

URL に日本語が含まれていても特に問題はありません。ただし、URL の取り扱い時に不便な点がある為あまり好まれないようです。

完璧(xxx.com/cat/mike/)

/%category%/%postname%/ または /%category%/%postname% (注)
手動で英数字の postname(slug)をセット

  • メリット
    • URL に意味を持たせる事ができる
  • デメリット
    • 投稿ごとに毎回英数字の slug を、同じカテゴリーの他の投稿の slug と重複しないように考えるのが面倒

とにかく、毎回 slug を考え、変更するのが面倒です。よほど几帳面&完璧主義者でない限りおすすめしません。

 /%post_id% や /%postname% など、最後の / がない場合、wp-config.php に define( 'WP_DEBUG', false ); を記述していても xxx.com/page/1 で Warning が表示される事があります。

Warning(警告)なので動作に問題はないのでは? と思ったが <head> タグ内の出力がおかしい…。

プラグイン「Redirection」などで xxx.com/page/1 から xxx.com にリダイレクトしてやれば OK です。

他のページでも Warning が表示される可能性があるので、エラー表示設定を適切に行って下さい。そうすれば Warning が表示される事はありません。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です