wordpress カスタム投稿パーマリンク

【wordpress】カスタム投稿タイプのURLをIDに変更する方法

2020.05.03 / 2021.01.02

カスタム投稿のデフォルトの仕様でURLが日本語になる

SEO的に悪影響があるわけではない(有利になるわけでもない)と言われていますが、コピーしてSNSで発信した場合のURLが文字化けするので出来れば英語でする方がベターという見解が多いです。

カスタム投稿の作成

カスタム投稿の作成です。

https://createsbook.com/wordpress/add-class-content/
add_action( 'init', 'my_post_type' );
function my_post_type() {
  register_post_type(
    'news',
    array(
      'label' => 'カスタム投稿タイプ名の日本語ラベル',
      'public' => true,
      'has_archive' => true,
      'rewrite' => array('with_front' => false)
    )
  );
}

post_typeを「news」と仮定します。

add_filter( 'post_type_link', 'my_post_type_link', 1, 2 );
function my_post_type_link( $link, $post ){
  if ( 'カスタム投稿タイプ名' === $post->post_type ) {
    return home_url( '/カスタム投稿タイプ名/' . $post->ID );
  } else {
    return $link;
  }
}
  
add_filter( 'rewrite_rules_array', 'my_rewrite_rules_array' );
function my_rewrite_rules_array( $rules ) {
  $event_list = array( 
    'news/([0-9]+)/?$' => 'index.php?post_type=news&p=$matches[1]',
  );
  
  return $event_list + $rules;
}

上記をfunction.phpに貼りつけたら、ダッシュボードでパーマリンク設定を変更します

ポイント

  • asss

固定ページのスラッグを取得し、そのスラッグに応じて表示するテンプレートを変更する
会員限定記事と一般公開記事にそれぞれ別のアイコンを設定
カスタム投稿タイプにカテゴリ&タグ追加しアーカイブページで表示
WordPressの本文のpやhタグにclassをつける
カスタムフィールド が空の場合の処理方法メモ
記事のカテゴリーの取得と表示方法
条件分岐によってページ毎に別デザインする方法
検索結果からページを除外