Category
Archives
Cocotiie
2006年:Web制作に関する覚書きブログをはじめる。

2018年:Cocotiie(ココッティー)・・・ここちいい(笑)として運営開始。

Trial And Errorの精神で勉強中です。少しでも誰かの助けになれれば嬉しいです。宜しくお願い致します。
テーマをSWELLにしてリニューアルしましたSWELLについて

[WordPress]カスタム投稿タイプのURLをポストIDにする

WordPressでは、記事のタイトルがパーマリンクに自動で入力されます。日本語サイトでは、日本語が入力されてしまう訳です。URLに日本語ではSEO的にあまり良い事ではないですよね。その都度書き換える必要がありますが、最初からポストID(数字)が入る様にしました。

INDEX

こんな時に使えます

サイトの投稿担当者が、何度言ってもURL(パーマリンク)を日本語のまま放置して修正してくれない!
そんなイラ立ちには、対抗策を。自動的に数字が入れば、まだマシかな?だからと言って、サイト全体のパーマリンクを数字にする訳にもいかないので、カスタム投稿タイプを利用するのが良いのではないかと思います。

カスタム投稿タイプの基本設定

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;
}
よかったらシェアお願いします

コメント

コメントする

INDEX
閉じる