WordPressでは、記事のタイトルがパーマリンクに自動で入力されます。日本語サイトでは、日本語が入力されてしまう訳です。URLに日本語ではSEO的にあまり良い事ではないですよね。その都度書き換える必要がありますが、最初からポストID(数字)が入る様にしました。
INDEX
こんな時に使えます
サイトの投稿担当者が、何度言ってもURL(パーマリンク)を日本語のまま放置して修正してくれない!
そんなイラ立ちには、対抗策を。自動的に数字が入れば、まだマシかな?だからと言って、サイト全体のパーマリンクを数字にする訳にもいかないので、カスタム投稿タイプを利用するのが良いのではないかと思います。
カスタム投稿タイプの基本設定
[WordPress]カスタム投稿タイプを追加する
カスタム投稿タイプについて WordPressのダッシュボードには無い物を追加して、使いやすくしよう!というお話です。カスタム投稿タイプって何?ダッシュボードには[投稿…
function.phpに書き足します。例は、投稿タイプを「schedule」とした場合
//カスタム投稿タイプ
function create_post_type() {
register_post_type(
'schedule', //投稿タイプ名
array(
'label' => '予定',
'labels' => array(
'all_items' => '予定一覧',
),
'public' => true,
'has_archive' => true,
'menu_position' =>6, //管理画面のアイコン順位
'menu_icon' => 'dashicons-desktop', //アイコン
'supports' => array( //投稿編集画面内の仕様
'title',
'editor',
'author',
'thumbnail',
'excerpt',
'custom-fields',
),
)
);
}
add_action( 'init', 'create_post_type' );
パーマリンクにポストIDを設定
//カスタム投稿パーマリンク
add_filter('post_type_link', 'generateCustomPostLink', 1, 2);
add_filter('rewrite_rules_array', 'addRewriteRules');
function generateCustomPostLink($link, $post){
if($post->post_type === 'schedule'){
// IDはschedule
return home_url('/schedule/'.$post->ID);
} else {
return $link;
}
}
function addRewriteRules($rules){
// 上のパーマリンクに0-9を足す
$new_rule = array(
'schedule/([0-9]+)/?$' => 'index.php?post_type=schedule&p=$matches[1]'
);
// ルール配列に結合
return $new_rule + $rules;
}
コメント ※ハンドルネームでお願いします