HOME

投稿タイプのパーマリンクを記事IDにする方法

カスタム投稿タイプでは通常、/投稿タイプ名/記事タイトル/ のように記事で設定したタイトルがスラッグ名に入りますので、日本語でタイトルを入れるとアドレスもそのまま日本語になってしまいます。以下のサイトを参考にさせていただき、スラッグを利用せずに記事IDを利用するようにしてみました。

memocarilog
投稿タイプのパーマリンクを記事IDにする

以下のコードを function.php に入れます。

add_action('init', 'myposttype_rewrite');
function myposttype_rewrite() {
    global $wp_rewrite;
  
    $queryarg = 'post_type=投稿タイプ名&p=';
    $wp_rewrite->add_rewrite_tag('%投稿タイプ名_id%', '([^/]+)',$queryarg);
    $wp_rewrite->add_permastruct('投稿タイプ名', '/投稿タイプ名/%投稿タイプ名_id%.html', false);
  
}
add_filter('post_type_link', 'myposttype_permalink', 1, 3);
function myposttype_permalink($post_link, $id = 0, $leavename) {
    global $wp_rewrite;
    $post = &get_post($id);
    if ( is_wp_error( $post ) )
        return $post;
    $newlink = $wp_rewrite->get_extra_permastruct($post->post_type);
    $newlink = str_replace('%'.$post->post_type.'_id%', $post->ID, $newlink);
    $newlink = home_url(user_trailingslashit($newlink));
    return $newlink;
}

.html は入れなくてもどちらでも OK です。

これで投稿アドレスが記事IDになりました。

今日のイラスト:カルダモン

cardamom


カテゴリー:WordPress, イラスト

コメントは受け付けていません。

  • DIY WordPress ごはん たび イラスト ガーデニング コスメ コーデ シネマ スイーツ ダンスレッスン デイリーメモ ドラマ ドリンク ブック モバイル

  • アーカイブ

ページトップへ