Udemyセール!最大95%オフ!1,200円~Udemy公式サイト >

この記事にはプロモーションが含まれています。

【WordPress】カスタム投稿タイプのパーマリンクを「数字ベース」にする

【WordPress】カスタム投稿タイプのパーマリンクを「数字ベース」にする

この記事ではWordPressで

カスタム投稿タイプのパーマリンクを「数字ベース」にする方法

をご紹介します。

デフォルト機能である「投稿」であれば、パーマリンク構造は管理画面「設定」→「パーマリンク」から簡単に設定可能です。

しかし、カスタム投稿タイプの場合、プラグインを用いるか、あるいはfunctions.phpにソースコードを記述する必要があります。

ケケンタ

今回はfunctions.phpにソースコードを記述して、カスタム投稿タイプのパーマリンク構造を「数字ベース」に設定する方法をご紹介します!



Amazon Kindle日替わりセールバナー


ケケンタ

ケケンタのITブログでは、WebアプリPHPLaravel)やWeb制作WordPressコーディング)について情報を発信しています。
学習中の方や実務をされている方など多くの方にアクセスいただいていますので、ぜひほかの記事も参考にしてみてください!


運動不足、気になっていませんか?

もしプログラミング学習やお仕事で運動不足が気になっているなら

連続屈伸運動がおすすめです!

ボタンにカーソルを合わせるだけ
カウントダウンが始まるタイマーをご用意してみました!

ケケンタ

無理のない範囲で、ぜひ隙間時間に屈伸運動を取り入れてみて下さい!

タイマースタート

3:00

※運動不足だと連続3分で取り組んでもかなり息が切れます
(僕は加えて気分もちょっと悪くなりました……)
絶対にご無理の無い範囲でお取り組みください!



目次

カスタム投稿タイプのパーマリンク構造を「数字ベース」にする

カスタム投稿タイプのパーマリンク構造を「数字ベース」にする手順は非常に簡単で、たったの2ステップで完了できます。

  • 管理画面「設定」→「パーマリンク」の設定がカスタム投稿タイプに反映されないようにする
  • functions.phpへソースコードを追記

STEP1|管理画面「設定」→「パーマリンク」の設定が反映されないようにする

カスタム投稿タイプをプラグイン「CPT UI」と「functions.php」のどちらで追加しているのかによって対応内容が変わります。

パターン① CPT UIを使用している場合

「フロントでのリライト」を「False」に変更します。

CPT UIの「フロントでのリライト」を「False」へ変更する
CPT UIの「フロントでのリライト」を「False」へ変更する

パターン② functions.phpで追加している場合

functions.phpのカスタム投稿タイプ定義箇所のオプションに下記を追記します。

'rewrite' => array('with_front' => false),

STEP2|functions.phpへソースコードを追記

次に、以下のソースコードをfunctions.phpへ追記します。

/**
 * カスタム投稿タイプのスラッグを「数字ベース」にする
 */
function my_custom_post_type_link( $link, $post ){
    if ( '★your-post-type-slug' === $post->post_type ) {
        return home_url( 'archives/★your-post-type-slug/' . $post->ID );
	}
	return $link;
}
add_filter( 'post_type_link', 'my_custom_post_type_link', 1, 2 );

function my_custom_rewrite_rules_array( $rules ) {
    $new_rules = array( 
        'archives/★your-post-type-slug/([0-9]+)/?$' => 'index.php?post_type=★your-post-type-slug&p=$matches[1]',
	);
    
	return $new_rules + $rules;
}
add_filter( 'rewrite_rules_array', 'my_custom_rewrite_rules_array' );

「★your-post-type-slug」(計4か所)をご自身のカスタム投稿タイプスラッグへ置き換えてお使いください。

出力されるURL構造

https://ドメイン/カスタム投稿タイプスラッグ/archives/記事ID

ケケンタ

たったこれだけで任意のカスタム投稿タイプのパーマリンク構造を「数字ベース」へ変更することが可能です!

補足|archivesを除去したい場合

やることは、前述のソースコードから「archives」を取り除くだけです。

/**
 * カスタム投稿タイプのスラッグを「数字ベース」にする
 */
function my_custom_post_type_link( $link, $post ){
    if ( '★your-post-type-slug' === $post->post_type ) {
        return home_url( '/★your-post-type-slug/' . $post->ID );
	}
	return $link;
}
add_filter( 'post_type_link', 'my_custom_post_type_link', 1, 2 );

function my_custom_rewrite_rules_array( $rules ) {
    $new_rules = array( 
        '★your-post-type-slug/([0-9]+)/?$' => 'index.php?post_type=★your-post-type-slug&p=$matches[1]',
	);
    
	return $new_rules + $rules;
}
add_filter( 'rewrite_rules_array', 'my_custom_rewrite_rules_array' );

「★your-post-type-slug」(計4か所)をご自身のカスタム投稿タイプスラッグへ置き換えてお使いください。

出力されるURL構造

https://ドメイン/カスタム投稿タイプスラッグ/記事ID

まとめ

以上がWordPressでカスタム投稿タイプのパーマリンクを「数字ベース」にする方法でした。

使用頻度は比較的少ないかもしれませんが、実案件で使用する機会があったためこれを機に記事にまとめてみました。

ケケンタ

この記事が少しでもお役に立ったなら何よりです!

当ブログではWordPressやPHPなどに関する情報を発信しています。ご興味のある方はほかの記事もご覧いただけるとうれしいです!

それでは、最後までご覧いただきありがとうございました。

wordpressでカスタム投稿タイプのパーマリンクを「数字ベース」にする方法のアイキャッチ画像

この記事が気に入ったら
フォローしてね!

この記事が良いと思ったらシェアしてね!

コメント

コメントする

CAPTCHA


目次